代码之家  ›  专栏  ›  技术社区  ›  Aaron Hoffman

在与Web应用程序相同的服务器场上调用ASP.NET Web服务

  •  2
  • Aaron Hoffman  · 技术社区  · 16 年前

    尝试从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应用程序调用服务器场上的Web服务时,或者当我从服务器场上的Web应用程序调用本地计算机上的Web服务时,不会发生此错误。

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

    3 回复  |  直到 16 年前
        1
  •  2
  •   Aaron Hoffman    16 年前

    我的问题的解决办法是打开负载均衡器的电源。

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

        2
  •  0
  •   ChrisF    16 年前

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

    你能通过远程桌面和 ping IP地址?

        3
  •  0
  •   Peter Stuer    16 年前

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