问题
I'm trying to deploy Unreal Server guest executable to Service Fabric. I've been fallowing this blog post:
http://haishibai.blogspot.com/2017/03/setting-up-highly-available-minecraft.html
Except I'm not using containers and use Windows based service.
On local cluster everything works. I can connect from client to deployed server.
When trying to connect to remote server, I can't connect to it.
When looking at my service fabric managment page It seems like my server process is working (it have proper process id).
In my LoadBalancing service I have port forwarding on UDP/7777, though HealthProbes are on TCP (there is no option to select UDP, I don't know if that mnatter).
Here Is my ServiceManifest:
<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="UnrealGuestPkg"
Version="1.0.0"
xmlns="http://schemas.microsoft.com/2011/01/fabric"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ServiceTypes>
<!-- This is the name of your ServiceType.
The UseImplicitHost attribute indicates this is a guest executable service. -->
<StatelessServiceType ServiceTypeName="UnrealGuestType" UseImplicitHost="true" />
</ServiceTypes>
<!-- Code package is your service executable. -->
<CodePackage Name="Code" Version="1.0.0">
<!-- The SetupEntryPoint is an optional element used to specify a
program to be executed before the service's code is launched. -->
<!--
<SetupEntryPoint>
<ExeHost>
<Program></Program>
</ExeHost>
</SetupEntryPoint>
-->
<EntryPoint>
<ExeHost>
<Program>ActionRPGGame\Binaries\Win64\ActionRPGGameServer.exe</Program>
<Arguments>-log</Arguments>
<WorkingFolder>CodeBase</WorkingFolder>
<!-- Uncomment to log console output (both stdout and stderr) to one of the
service's working directories. -->
<!-- <ConsoleRedirection FileRetentionCount="5" FileMaxSizeInKb="2048"/> -->
</ExeHost>
</EntryPoint>
</CodePackage>
<!-- Config package is the contents of the Config directoy under PackageRoot that contains an
independently-updateable and versioned set of custom configuration settings for your service. -->
<ConfigPackage Name="Config" Version="1.0.0" />
<Resources>
<Endpoints>
<!-- This endpoint is used by the communication listener to obtain the port on which to
listen. Please note that if your service is partitioned, this port is shared with
replicas of different partitions that are placed in your code. -->
<Endpoint Name="UnrealGuestTypeEndpoint" Port="7777" Protocol="udp" />
</Endpoints>
</Resources>
</ServiceManifest>
回答1:
1.You seem to be missing the service endpoint configuration.
<Resources>
<Endpoints>
<!-- This endpoint is used by the communication listener to obtain the port on which to
listen. Please note that if your service is partitioned, this port is shared with
replicas of different partitions that are placed in your code. -->
<Endpoint Name="ServiceEndpoint" Port="7777" />
</Endpoints>
</Resources>
- UDP isn't supported for probes on the load balancer. So, expose a second service endpoint that uses tcp, just as a health endpoint.
来源:https://stackoverflow.com/questions/45780152/service-fabric-cant-connect-to-guest-executable-on-udp-unreal-engine-server