UnrealGameSync Metadata Server Issue

Hi,
I’m trying UnrealGameSync to deploy engine.
UnrealGameSyncMetadataServer is deployed to machine (Windows Server 2016 with IIS 10.0 and ASP .NET 4.6).
I got error message “The remote server returned an error: (500) Internal Server Error.” when UGS try to ReadEventsFromBackend, and the request is as follows:
Address = {ApiUrl/api/cis?GET}
ContentType = “application/json”
Request.Method = “GET”

Am I missing something in IIS or forgetting some settings in UGS?

I was getting the same issue. Idk why this works for Epic, but basically they have a while loop that depends on continuing via exception. This issue occurs when you don’t already have some data in the database. Here is the diff with my solution.

@Cobryis can you shed any light on getting the DB to create itself? Checked directory permissions on the app pool, connection string is set, and still getting a 404.

404 means you’re not even communicating with the server. Hence why you’re probably not seeing the DB created. You can test the server locally with IIS express in visual studios. Then see if you can get ugs with your local endpoint to connect to your locally hosted meta data server.

I’ve been trying to setup the metadata server for days and running into issues where the “server.com/api/latest” gives me a 404. I installed iis and was able to use web deploy from visual studio to deploy to the server, but what do I do next? I installed the database files as well. I feel like I’m missing a very important step for it to do what it’s supposed to on the server.

When I try to connect to the server locally I get:
Handler “ExtensionlessUrlHandler-Integrated-4.0” has a bad module “ManagedPipelineHandler” in its module list
and when I try to connect to the server remotely I get a 403 on the homepage (server.com) and if i try to hit server.com/api/latest I get a 404. The 403 is if I have file browsing off. I can turn it on and it will just show me the files.

The ExtensionlessUrlHandler seems like an ASP.NET installation issue, which I can figure out, but I don’t know what I have to do to get it to allow me to hit the routes on the server. I don’t know what the server files are supposed to look like but I’ve never ever made an ASP.NET web application before so this is really confusing for me.

So I fixed the ExtensionUrlHandler issue, and now I get the same thing I do on the remote server when I hit the homepage:
403 - The Web server is configured to not list the contents of this directory.
and when I hit localhost/api/latest I get a 404.

Are you getting a 404 when you try to connect to the local machine? I run the server on localhost first using the IIS feature/plugin for VS and connect to that through VS. Once I know that’s working, I setup the website through IIS on the server machine. I then have VS deploy to that machine. At that point I’m able to connect to the server using even just URL get commands to test the connection in my web browser.

I’ve written up a wiki at my company. I want to make it public at some point. But here’s my note on a 403:
It shouldn’t be anything to worry about, it just means the contents of your server are currently ‘hidden’, but probably updated. Examining the contents of your server, (typically C:\inetpub\wwwroot\UGSAPI), for a “database.sqlite” file should indicate successful deployment. This file will only show up if someone marked a build as good/bad or left a comment on a build through UGS.

As for the 404, that’s not a valid URL I don’t think. Here’s an example of how I tested the server through my browser: http://server/UGSAPI/api/cis?GET

Our server is internal so I didn’t need a domain, just the address on our local net. I named the web app UGSAPI. /cis?GET may no longer be valid since they changed the API, but you can try it. It might be /latest?GET since a newer version of UE4. Should return an XML page for you.

A working UGS Metadata Server.

Thanks for taking the time to send this over to me and try to help me out. I really appreciate it. I have tried to set mine up to be almost exactly like yours on my localhost. Then I added in “http://localhost/UGSAPI/” as the ApiUrl in the source of UGS and I was able to mark builds for good/bad and leave comments. That seems like a good sign. Testing the routes in the browser still don’t work though, and that seems weird to me.

Nevermind. If you put anything in the “ApiUrl” field it lets you do all of the features but they don’t save. I don’t see that “database.sqlite” file when I deploy it to my localhost or the server. Is there a way to see errors or something? This feels like a black box.

Is it possible that my connection string is wrong? I’ve tested the credentials I’m using and they work fine.

And here is a screenshot of the tree for where the server files live after I publish them. I feel like I’m missing stuff here.

289007-ugs-tree.png

Here are more screens of my setup. I don’t have time to actually go through the steps to get it running to tell you exactly how it works. A lot of what I did was just banging my head against the wall until something gave in. IIS does produce logs for requests to your server. Idk about on the localhost though. I debugged the local host through VS and I think i saw all messages in the output log there. But for the server it was a blackbox with the exception of the limited message log. I’ll add a screenshot of it in a sec.

Also one reason it took me so long to get the server running was the Publish screen I sent earlier. I did not have VS deploying into the folder correctly as IIS was expecting it. Once I got that (and permissions maybe) it was working. But this was just when dealing with the remote server, not localhost.

db location:

Logs:

It turns out it was my connection string and my permissions. Thanks for sending those screenshots over. Finally got it working on localhost, now I just have to get it running on the remote server. How did you create the initial database.sqlite file on the server? Or did you create it on your local machine and copy it over?