我知道这个问题已被问过多次,但找不到与我的情况完全匹配的任何东西。
我有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
。
答案 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技术连接到本地网络。
此外,如果Azure Web应用程序设置了其VNet,则Azure Web应用程序沙箱中的某些Networking Restrictions/Considerations可能会有所不同。
尤其是对私人和本地的限制 如果目标网络接口属于 应用程式。无法访问同一台计算机上的其他VNet适配器,并且 所有其他网络限制仍然适用。