我在网络中安装了Azure虚拟网络和VM。我已经在VM上安装了混合连接管理器应用程序。
我还有一个Azure应用程序服务,我在它和VM之间创建了一个混合连接,他们都声称他们很高兴地连接在一起。
在VM上,我还安装了一个正在监听http://localhost:1234的应用程序
谁能告诉我,我用什么IP从我的应用服务与http://localhost:1234在VM上交谈?例如,它是VM内部IP:1234还是VM公共IP:1234,还是其他什么。目前什么都没说,所以我想确保IP地址不是问题所在。
发布于 2017-11-14 17:46:03
只需使用VM的计算机名称即可。例如,从App中的代码调用SQLSRV009:1234
。门户中的混合连接定义应该反映相同的名称(与计算机名称相同,与您从代码中调用的名称相同)。
查看这个写得很好的指南获得完整的图片- https://learn.microsoft.com/en-us/azure/biztalk-services/integration-hybrid-connection-create-manage。
可以将混合连接端点设置为IP地址。如果您使用IP地址,您可能会或不可能到达现场资源,这取决于您的客户端.。 混合连接依赖于客户端进行DNS查找。在大多数情况下,客户端是应用程序代码。如果客户端不执行DNS查找(它不试图像解析域名一样解析IP地址(x.x)),则将不会通过混合连接.发送通信量。 例如(伪代码),您将10.4.5.6定义为您的本地主机:下面的场景工作:
Application code -> GetHostByName("10.4.5.6") -> Resolves to 127.0.0.3 -> Connect("127.0.0.3") -> Hybrid Connection -> on-prem host
以下场景不起作用:Application code -> Connect("10.4.5.6") -> ?? -> No route to host
另外,让你的应用程序监听0.0.0.0
或私有IP,因为我不太确定localhost
会与HC一起工作。
为什么不为Web应用程序使用VNET集成?您需要做的就是在VNET中创建一个基于路由的(IKEv2) VPN网关,就像so - https://learn.microsoft.com/en-us/azure/app-service/web-sites-integrate-with-vnet一样。
发布于 2017-11-15 02:19:22
你应该使用VM host name
,谢谢邪恶的链接。
如果您使用IP地址,您可能会或不可能到达现场资源,这取决于您的客户端。
如果您使用VM public IP
,流量数据包将通过互联网传输到您的VM而不是VPN隧道。localhost
只能在VM内部使用。
另外,如果您的应用程序正在监听localhost(127.0.0.1)
,则该服务只能在VM中访问。正如evilSnobu所说,您需要修改侦听0.0.0.0
或private IP(like 10.0.0.4)
的服务。您可以使用以下命令进行检查。
对于Linux
netstat -ant|grep 1234
Windows操作系统
netstat -ant|findstr 1234
https://stackoverflow.com/questions/47290907
复制相似问题