本文介绍了Service Fabric无法连接到UDP(虚幻引擎服务器)上的来宾可执行文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将虚幻服务器来宾可执行文件部署到Service Fabric.我一直不喜欢这篇博客文章:

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

除非我不使用容器,而是使用基于Windows的服务.

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.

当查看我的服务结构管理页面时,我的服务器进程似乎正在运行(它具有正确的进程ID).

When looking at my service fabric managment page It seems like my server process is working (it have proper process id).

在我的LoadBalancing服务中,我在UDP/7777上具有端口转发功能,尽管HealthProbes在TCP上(没有选择UDP的选项,我不知道那是什么).

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

这是我的ServiceManifest:

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.因此,将第二个使用tcp的服务端点公开为健康端点.

这篇关于Service Fabric无法连接到UDP(虚幻引擎服务器)上的来宾可执行文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-22 21:51