如何调用部署在 azure 上的 WEB api 服务结构?

Posted

技术标签:

【中文标题】如何调用部署在 azure 上的 WEB api 服务结构?【英文标题】:How can I call WEB api service fabric which deployed on azure? 【发布时间】:2017-09-10 03:18:06 【问题描述】:

我已经使用 Visual Studio 2015 创建了本地无状态 WebAPI 和 Statefull 数据服务。它通过实现http://localhost:344/api/abc/getEmployee 在本地系统和网站访问 WebAPI 服务中完美运行。然后我在 Azure 上部署了服务结构应用程序并收到了客户端 URL

http://xyz.southeastasia.cloudapp.azure.com:1900/Explorer/index.html#/abc.apptype/app/abc.app/service/abc.app%252webservices

我的问题是如何从这个 Azure 客户端 URL 调用我的 WebAPI 控制器和操作?

http://xyz.southeastasia.cloudapp.azure.com:1900/api/abc/getEmployee 不工作。

注意:此网址不安全,将被手机和网站使用。

【问题讨论】:

“不工作”是什么意思?你得到了什么 HttpStatus 代码? 404? 将外部端口转发到负载均衡器上的内部端口 334,然后通过 http://lbip:extport/api/abc... 访问... @MegaTron- 我在检查xyz.southeastasia.cloudapp.azure.com:19000 Url 时收到“无法得到任何响应。确保后端正常工作”..... 【参考方案1】:

您使用了错误的端口来访问您的应用程序。端口 19000 是管理端点。

Read 这个来设置你的 API。在端口 80 上运行您的应用程序(如果可能),

确保 Azure 负载均衡器具有针对集群节点上端口 80 外部的端口 80 的负载均衡规则。更多信息here。

【讨论】:

【参考方案2】:

您需要为要使用的端口配置入站 TCP 规则。通常,您会将入站端口(例如端口 80)映射到应用程序正在侦听的端口(例如 344)。

在 Azure 管理门户中,找到已部署的 Service Fabric 服务的资源组;在其中,应该有一个“负载均衡器”资源。 -- 点击那个。

在那里,您应该找到一个名为“负载平衡规则”的窗格(很容易通过浅灰色图标查看它,它就在“入站 NAT 规则”的正上方)。

使用配置刀片顶部的按钮,为您需要打开的端口“添加”规则;您应该给它一个有意义的名称(例如 HTTP 或 WebAPI 等)——对于“端口”,这是您要映射的面向公众的端口(例如 HTTP 的端口 80),对于后端端口,您可以将您实际监听的端口(例如 344)。

最后,不要期望它立即生效。 -- 你会看到一个小的“更新”栏,你必须等待它完成。

【讨论】:

以上是关于如何调用部署在 azure 上的 WEB api 服务结构?的主要内容,如果未能解决你的问题,请参考以下文章

在 Azure Web 应用/Azure API 上部署时缺少 CORS 标头

我应该使用 Docker 将 Web API 项目(微服务)部署到 Azure Web App [关闭]

在将 web api 部署到天蓝色之后,从 api 到类库的每个调用都失败了

Azure api 请求被中止:无法创建 SSL/TLS 安全通道。 http客户端在调用一些web api时

Azure 移动服务 Web Api 上的 SignalR CORS

NetScaler VPX在Azure上的部署