2

当我尝试从 ASP.NET Web 应用程序调用 ASP.NET Web 服务时出现以下错误。我相信这是因为 Web 服务和 Web 应用程序位于同一个场/在同一个负载均衡器后面。

A connection attempt failed because the connected party did not properly
respond after a period of time, or established connection failed because
connected host has failed to respond [IP Address removed]:80

当我从本地计算机上的 Web 应用程序调用 Farm 上的 Web 服务时,或者当我从 Farm 上的 Web 应用程序调用本地计算机上的 Web 服务时,不会发生此错误。

知道为什么会发生此错误吗?

4

3 回答 3

2

我的问题的解决方案是在负载均衡器上打开 NATing。

请求是从场中的服务器向负载均衡器发出的,然后负载均衡器会将该请求发送到场中的其中一台服务器(甚至可能是请求它的同一台服务器)。问题是,正在处理请求的服务器会尝试将响应直接发送回“请求客户端”而不是返回到负载均衡器,因此发出请求的服务器将忽略响应,因为它不是由负载均衡器发送。通过打开 NAT,所有响应都将发送回负载均衡器,然后负载均衡器将响应发送到原始客户端。

于 2009-06-17T20:44:34.380 回答
0

这只是一个猜测,但是 Web 服务器真的可以看到正在使用的 IP 地址吗?如果它位于负载均衡器后面的场中,则该 IP 可能被负载均衡器本身或防火墙或代理服务器阻止。

您可以通过远程桌面和pingIP 地址访问 Web 服务器吗?

于 2009-05-21T16:19:14.547 回答
0

您的场节点上的 TCP/IP 堆栈不会将调用路由到负载平衡器的 IP 地址,但会自动将其转换为 127.0.0.1:80 上进行调用的特定场节点上的本地调用. 确保您的 Web 服务器已设置为处理这种情况。

于 2009-05-24T08:47:33.597 回答