c#:无法与服务器建立连接

时间:2019-01-15 07:11:27

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

我知道这个问题已被问过多次,但找不到与我的情况完全匹配的任何东西。

我有2个Web API,例如WebAPI1和WebAPI2。

WebAPI1使用.Netcore开发,并部署在Azure中。
WebAPI2使用.NET Framework 4.6.1开发,并使用IIS部署在Azure VM中。

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

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

无法与服务器建立连接。

我已将VM的端口80和443添加到了入站端口规则。那没有解决我的问题。
我猜这可能是防火墙问题。所以有人可以建议我如何解决这个问题。

如果需要进一步的信息来解决此问题,请告诉我。非常感谢!

编辑

我的VM的IP地址类似于10.x.x.x
在IIS中,我在默认网站中添加了一个名称为WebAPI2的应用程序。
在Web API中,我有控制器方法名称GetData()
我有路由前缀:[RoutePrefix("api/App")]
所以我使用的URL是-> http://10.x.x.x/WebAPI2/api/App/GetData

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

enter image description here

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

  

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