asp.net-web-api - 在 Service Fabric 中公开 Web API

标签 asp.net-web-api azure-service-fabric

我在访问已部署到 Service Fabric 群集的 Web Api 时遇到问题。我遵循了新的 Stateless Web Api 模板,并添加了如下所示的 http 端点。我还对 OwinCommunication 进行了修改,如图 here 所示。 。

<Resources>
   <Endpoints>
     <Endpoint Name="ServiceEndpoint" Type="Input" Protocol="http" Port="8080" />
   </Endpoints>
</Resources>

创建集群时,我向节点类型添加了自定义端点 80。

我的集群的客户端连接端点是:mycluster.eastus.cloudapp.azure.com:19000

此外,我有一个负载平衡规则,通过 TCP 将端口 80 映射到后端端口 8080。关联的探针位于端口 80 上,我尝试了两种协议(protocol)(http 和 tcp),但似乎都不起作用。

在本地,我可以通过调用 http://localhost:8080/health/ping 访问 Web Api 上的端点,然后返回“乒乓”。当我尝试在服务结构集群中访问它时,会下载一个文件。我用来在云端访问它的 URL 是 http://mycluster.eastus.cloudapp.azure.com:19000/health/ping 。我尝试过其他端口(19080、80、8080),但它们要么挂起,要么给我一个 400。

关于在服务结构集群中公开 Web Api 的问题是:

  1. 探测应该是 http 还是 tcp?
  2. 是否应将探测后端端口设置为 Web API 端口(例如 8080)?
  3. 我的 URL/端口对于访问我的 API 是否正确?
  4. 为什么要下载二进制文件?这种情况发生在所有浏览器中,并且内容显示在 postman 和 fiddler 中。

最佳答案

经过多次启发找到了我的问题的答案。如果我的 Web Api 端点设置为端口 8080,那么我需要以下内容:

  1. 探测 TCP 上的端口 8080
  2. 端口 80 和后端端口 8080 的负载均衡规则
  3. 通过以下 URL 访问 Web Api:http://mycluster.eastus.cloudapp.azure.com/health/ping

至于#4,这仍然是个谜。

关于asp.net-web-api - 在 Service Fabric 中公开 Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37505313/

相关文章:

asp.net-web-api - Asp.net Web Api 的基本项目模板?

javascript - 将对象从 JavaScript 传递到 Web API 时出现问题

asp.net-mvc - ASP .Net MVC 中多个设备的多 View

azure-service-fabric - 如何配置无状态服务的启动顺序?

azure - 部署期间 Azure 中的 Service Fabric 错误

azure - 使用 MSI 从本地 Service Fabric 群集访问 Key Vault

performance - Service Fabric 事务比另一台计算机中的 SQL 事务慢 10 倍

c# - 如何实现 Web API Controller 以使用 JQuery 文件上传接受分块上传?

asp.net - 我需要 ASP.NET MVC 5 SPA 模板吗?

azure-service-fabric - 如何访问无状态服务的特定副本