3

我们有一个包含单个服务的服务结构应用程序。此服务通过端口 8910 上的 Web Api 公开 HTTP 端点

我们将此应用程序部署到不同的实例并使用以下代码来防止我们的服务实例之间的端口冲突

    protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
    {
        var settingsResolver = SettingsResolver.GetResolver();

        return new ServiceInstanceListener[]
        {
            new ServiceInstanceListener(serviceContext => 
                new OwinCommunicationListener(
                    startup => new OwinBuilder(settingsResolver, baseLogger)
                                .Configure(startup), 
                    serviceContext, 
                    ServiceEventSource.Current, 
                    "ServiceEndpoint",
                    serviceContext.ServiceName.Segments[1]))
        };
    }

serviceContext.ServiceName.Segments[1]解析为应用程序实例的名称

服务清单具有端口配置

<Endpoint Protocol="http" Name="ServiceEndpoint" Type="Input" Port="8910" />

但是,当我们在同一个 Azure 集群中运行两个实例时,我们会随机收到连接到端点的 503 错误。这些最终会自行解决 - 但我想知道是否需要设置任何其他步骤才能处理具有端口共享的多实例应用程序?

4

0 回答 0