【问题标题】:c# : A connection with the server could not be establishedc#:无法与服务器建立连接
【发布时间】:2019-01-15 07:11:27
【问题描述】:

我知道这个问题已被多次询问,但找不到与我的场景完全匹配的任何内容。

我有 2 个 Web API,比如 WebAPI1 和 WebAPI2。 WebAPI1 使用 .Netcore 开发并部署在 Azure 中。 WebAPI2 使用 .NET 框架 4.6.1 开发,并使用 IIS 部署在 Azure VM 中。

现在我必须从 WebAPI1 向 WebAPI2 发出请求。我已经使用 httpclient 调用了 WebAPI2。

托管后,尝试发出请求时,抛出以下错误:

无法与服务器建立连接。

我已将 VM 的端口 80 和 443 添加到入站端口规则中。那并没有解决我的问题。我猜这可能是防火墙问题。我可以尝试解决什么问题?

编辑

我的虚拟机的 IP 地址是 10.x.x.x。在 IIS 中,我在默认网站中添加了一个应用程序,名称为:WebAPI2。在 Web API 中,我有控制器方法名称 GetData()。

我有路由前缀:[RoutePrefix("api/App")]。所以我使用的网址是http://10.x.x.x/WebAPI2/api/App/GetData。

【问题讨论】:

  • 您的 WebAPI1 是否部署在 Azure Web 应用服务中?
  • @NancyXiong 是的
  • 如果是这样,你为什么在你的 URL 中使用私有 IP?当您从 WebAPI1 向 Azure VM 上的 WebAPI2 请求时,它应该是公共 dns 名称或 IP 地址。
  • 您可以尝试在 URL 中使用与该 VM 关联的公共 IP 地址或 DNS 名称,例如 xxx.region.cloudapp.azure.com ?
  • @NancyXiong 如果我们没有该 VM 的公共 IP 地址该怎么办。我们的组织限制我们为任何 Azure VM 创建公共 IP。

标签: c# asp.net-web-api2 azure-virtual-machine azure-web-app-service


【解决方案1】:

您似乎无法使用 URL http://10.x.x.x/WebAPI2/api/App/GetData 从 Azure Web 应用服务中的 WebAPI1 访问 Azure VM 上的 WebAPI2,因为公共 Azure Web 应用服务无法在 URL 中找到私有 IP。

在这种情况下,您可以在 Azure Web 应用服务中启用 VNet integration。这使您的 Web 应用程序可以访问您的虚拟网络中的资源,但不会授予您从虚拟网络对您的 Web 应用程序的私有访问权限。此外,这些网络随后可以使用 VPN 技术连接到您的本地网络。

此外,如果 Azure Web 应用程序设置了它们的 VNet,一些 Networking Restrictions/Considerations 在 Azure Web 应用程序沙箱中可能会有所不同。

特别是对私有和本地的限制 如果目标网络接口属于 应用程序。无法访问同一台计算机上的其他 VNet 适配器,并且 所有其他网络限制仍然适用。

【讨论】:

  • 感谢您的详细解释。我会试试这个并回复你。谢谢!
【解决方案2】:

请确保您已将域绑定到iis网站(WebAPI2)或直接使用指定端口的VM的IP。

【讨论】:

  • 看到我的虚拟机的IP地址是10.*.*.*。在 IIS 中,我在默认网站中添加了一个应用程序,名称为:WebAPI2。在 Web API 中,我有控制器方法名称 GetData()。我有路由前缀:[RoutePrefix("api/App")]。所以我使用的 URL 是 --> 10.x.x.x/WebAPI2/api/App/GetData .
  • 我在问题中添加了相同的信息,格式更好。我提到的 URL 在通过邮递员发送请求时按预期返回数据。
  • 为什么要添加“WebAPI2”。当应用程序本身映射到 IP 并且您是否缺少“http://”时,我认为不需要它?
  • 因为在默认网站中添加了一些其他的Web应用程序。所以我需要提到应用程序名称和 IP 地址。我在评论中错过了 http://。但我的网址中确实有。
  • 尝试使用 80 以外的端口。这似乎是您已经提到的防火墙配置问题,如果它适用于其他端口,那么您可能需要为端口 80 和可能的 443 配置防火墙好吧。
猜你喜欢
  • 2020-04-06
  • 2012-10-17
  • 1970-01-01
  • 2019-06-21
  • 2021-07-18
  • 2018-08-09
  • 1970-01-01
  • 2021-03-02
  • 2015-06-13
相关资源
最近更新 更多