Service Fabric can't connect to guest executable on UDP (Unreal Engine Server)

六眼飞鱼酱① 提交于 2019-12-11 07:06:37

问题


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>
  1. 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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!