将 OWIN 自托管 Service Fabric 应用程序部署到云后的终结点

Endpoint after deploying an OWIN self-hosted Service Fabric application to the cloud

我能够 运行 here 描述的示例 OWIN 自托管 Service Fabric 应用程序在本地就很好,并且可以通过 XML 文件形式查看对本地主机的 HTTP 请求的结果.但是,当我将应用程序发布到云中的 Service Fabric 时,如何发出相同的请求?我的 Service Fabric 端点​​作为 [结构名称].westus.cloudapp.azure.com:19000 提供给我,所以我尝试了 [结构名称].westus.cloudapp.azure.com:19000/api/values,但它给了我一个乱码下载文件,我希望得到与之前相同的 XML 文件。本地 ServiceManifest.xml 文件给出了一个端口 8760,这是我用于 localhost 的端口,但在云上也没有用,而且我在云中看到的清单没有列出任何端口。

听起来您需要在负载平衡器中打开端口 8760。转到 Azure 门户,找到负载均衡器设置,然后打开端口。然后就可以通过[fabric name].westus.cloudapp.azure.com:8760/api/values.

访问

创建 Service Fabric 群集时,是否为 OWIN 端点指定了自定义端口号?在您的情况下,这将是 8760:

Service Fabric 允许您使用上述方法指定自定义端口 + 在 ServiceManifest.xml 端点定义中指定该端口,或者如果您未指定端口,则会从范围内将一个端口分配给您的端点SF 应用程序的可用端口号:

more details on endpoint port mapping in Service Fabric

端口 19000 是管理工具使用的二进制协议。正如其他人在这里所说的那样,您缺少的是通过 Azure 负载均衡器 公开打开您的服务端口(在您的情况下为 8760),它必须配置为自定义端口您希望服务 运行 的每个节点。 Azure 负载均衡器会将外部流量路由到指定了自定义端口的每个节点,因此您还必须确保您的服务在每个节点上都是 运行ning。您可以通过为服务的实例计数使用“-1”来做到这一点。