无法访问基本的 Fabric Azure WebAPI OWIN 无状态服务

Can't access a basic Fabric Azure WebAPI OWIN stateless service

在遵循 tutorial 之后,我在 localhost:8534/simpleprime/api/values/* 上成功 运行,结果与 tut 相同。

后来将解决方案发布到远程云集群,我无法使用 www.clusterurl:8534/api/values 访问它,每次都超时。即使我在部署期间从 Visual Studio 获得了令人放心的事件诊断。

我也单独尝试了每个节点,打算 http://node_ip:8543/simpleprime/api/values,运气不好

终于解决了,在服务端口配置里面(a.k.aServiceManifest.xml)有一个端口设置。将其更改为 19080 - 我的集群正在侦听的默认 http 端口后,一切都开始工作了。

如果您想使用 Azure 上的 OWIN 侦听器访问您的服务,您应该定义您的应用程序将在集群创建期间用于 LoadBalancer 的端口。

如果您出于某种原因忘记了,您可以稍后通过以下方式完成:

服务部分

  1. 使用 OWIN Listener
  2. 转到您的服务的 PackageRoot/ServiceManifest.xml
  3. 直接定义您的端点(这样 SF 将使用您定义的端口号)(在我的示例中为 8081)

  4. 将应用程序重新发布到 Azure。

蔚蓝部分

  1. 转到 Azure 门户
  2. 找到分配给您的 SF 的负载均衡器 (LB-nameofyourSF-namofNodeSet)
  3. 在 LoadBalancer 设置中转到 Probes 并添加新的探测器,如下图所示,您的端口在 ServiceManifest.xml 中定义(在我的例子 8081)和协议 TCP
    1. 添加新的负载平衡规则,使用之前定义的端口和探测以及正确的端口映射(在我的示例中为 8081):

  1. 保存,现在您应该可以通过浏览器访问 Azure 上的服务了。