Service Fabric 托管 Web API
Service Fabric hosted Web API
我创建了一个简单的 Stateful Actor 和一个 Web API(自托管)并将其部署到 Azure。它起作用了,我可以浏览 Service Fabric Explorer 中的节点。
Azure 给了我一个 url 但是当我将 /api/values 添加到末尾时(在本地工作正常)它会下载一个名为 values 的文件但我无法打开它,因为它是二进制文件文件。
我想从 Xamarin 应用程序调用网络 api(即正常的 Rest api 调用),但如果我无法通过浏览器调用它,我会有点卡住。
与 Service Fabric 没有真正的关系,它只是您在 Web API 中设置 HTTP 响应的方式 headers。建议用 asp.net or asp.net-web-api 标记以获得更详尽的答案。
找到了丢失的东西。
https://azure.microsoft.com/en-us/documentation/articles/service-fabric-cluster-creation-via-portal/
这里 link 介绍了如何在 Azure 上创建 Service Fabric 应用程序,特别是字段 "Application input endpoints" 需要有您要使用的端口。对于示例,它们主要是端口 80 或 8081。
之后应该有一种方法可以添加这些端口,我尝试过(Microsoft 支持工程师也尝试过)但它似乎没有用。您应该能够将这些端口添加到与 Service Fabric 应用关联的负载均衡器。
我重新创建了我的 Service Fabric 应用程序,与之前完全一样,但这次在“节点类型”部分填写了我想使用的端口,现在我可以访问我部署的 webapi 服务了。这个字段可以留空,这是我第一次做的,也是我遇到问题的原因。
Azure Service Fabric Stateless Web API
周围的教程和技术资源往往略微脱节,因为平台和资源还很不成熟。
This Stateless Web API tutorial,在撰写本文时,非常有效。
作为教程的先决条件:
- 更新
Visual Studio
到最新版本(扩展和更新)
- 将
Service Fabric SDK
更新到最新版本 (Web Platform Installer)
- 当 setting up your Azure Service Fabric Cluster
Node Type
参数 时明确指定 EndPoint Port
属性(在 ServiceManifest.xml
中定义)
遵循这些步骤将成功地允许部署到本地和远程集群,并将公开您的 Web API 端点以供使用。
我会在 上发表评论,但我缺乏足够的声誉。
要在 创建服务结构集群后 添加自定义端口到负载均衡器,您可以(在较新的 Azure 门户中):
- 导航到服务结构集群的负载均衡器资源。
- 在 "Settings" 下找到 "Load balancing rules" 选项。
- 这将至少有两条规则,如果您在集群设置期间设置了自定义规则,则更多。
- 添加新规则。
- 给它起个名字
- 'Port' 是您要访问的外部端口。
- 'BackendPort' 是您的服务配置为侦听的端口。
- 其他设置的默认值在紧要关头起作用。
请注意,如果您要启用多个端口,每个端口都需要自己的规则。
我知道以上内容在我的 'hello world' 沙箱项目中有效。
我自己正在攀登 Service Fabric 学习曲线,因此我无法对其他设置发表权威评论。
我创建了一个简单的 Stateful Actor 和一个 Web API(自托管)并将其部署到 Azure。它起作用了,我可以浏览 Service Fabric Explorer 中的节点。
Azure 给了我一个 url 但是当我将 /api/values 添加到末尾时(在本地工作正常)它会下载一个名为 values 的文件但我无法打开它,因为它是二进制文件文件。
我想从 Xamarin 应用程序调用网络 api(即正常的 Rest api 调用),但如果我无法通过浏览器调用它,我会有点卡住。
与 Service Fabric 没有真正的关系,它只是您在 Web API 中设置 HTTP 响应的方式 headers。建议用 asp.net or asp.net-web-api 标记以获得更详尽的答案。
找到了丢失的东西。
https://azure.microsoft.com/en-us/documentation/articles/service-fabric-cluster-creation-via-portal/
这里 link 介绍了如何在 Azure 上创建 Service Fabric 应用程序,特别是字段 "Application input endpoints" 需要有您要使用的端口。对于示例,它们主要是端口 80 或 8081。
之后应该有一种方法可以添加这些端口,我尝试过(Microsoft 支持工程师也尝试过)但它似乎没有用。您应该能够将这些端口添加到与 Service Fabric 应用关联的负载均衡器。
我重新创建了我的 Service Fabric 应用程序,与之前完全一样,但这次在“节点类型”部分填写了我想使用的端口,现在我可以访问我部署的 webapi 服务了。这个字段可以留空,这是我第一次做的,也是我遇到问题的原因。
Azure Service Fabric Stateless Web API
周围的教程和技术资源往往略微脱节,因为平台和资源还很不成熟。
This Stateless Web API tutorial,在撰写本文时,非常有效。
作为教程的先决条件:
- 更新
Visual Studio
到最新版本(扩展和更新) - 将
Service Fabric SDK
更新到最新版本 (Web Platform Installer) - 当 setting up your Azure Service Fabric Cluster
Node Type
参数 时明确指定
EndPoint Port
属性(在 ServiceManifest.xml
中定义)
遵循这些步骤将成功地允许部署到本地和远程集群,并将公开您的 Web API 端点以供使用。
我会在
- 导航到服务结构集群的负载均衡器资源。
- 在 "Settings" 下找到 "Load balancing rules" 选项。
- 这将至少有两条规则,如果您在集群设置期间设置了自定义规则,则更多。
- 添加新规则。
- 给它起个名字
- 'Port' 是您要访问的外部端口。
- 'BackendPort' 是您的服务配置为侦听的端口。
- 其他设置的默认值在紧要关头起作用。
请注意,如果您要启用多个端口,每个端口都需要自己的规则。
我知道以上内容在我的 'hello world' 沙箱项目中有效。
我自己正在攀登 Service Fabric 学习曲线,因此我无法对其他设置发表权威评论。