Before setting up the server, there is a service called “Bootstrapper” responsible for register the server to the storage by calling “Agents” “POST /api/Agents” from the API, this service gets the server Id from the registry (HKEY_LOCAL_MACHINE\Software\Forgotten Mines\GameServer , the Key Name: ID.. the Key value is the server Id value) where the same service generate it if not found.
and by the website dashboard will assign the connection string to the server.
- Production server: the server that is running on the virtual machine on the cloud.
this server uses production connection string (Except if change by server control page in the admin part of the website)
- Local Server: the server that runs on the local machine.
this server uses Local Storage (Except if change by server control page in the admin part of the website).
- Secondary server: the server runs on the @Lotus Local machine on his server, this server uses Staging Connection String (Only @Lotus controls it, not registered in the website dashboard)
in both of them communicate to the API by calling “ServerIdToConnectionString” (GET /api/ServerIdToConnectionString) resource to get the connection string value (there are 3 types of the connection string: Local, Production and staging )
After getting a connection string value, the server will initialize itself by this connection string.
If the server not found in the storage the API will return Local Connection string by default.
the server does the requests to the Published API, so for any server call the published API
the data manipulation will happen through production storage.
Note: to use Local storage in this case, run the Local web API and make the server Listen to it by changing the URL from app.config file to local URL (it is like: http://localhost:59601/api/).