簡體   English   中英

在與 Web 應用程序相同的場上調用 ASP.NET Web 服務

[英]Call ASP.NET Web Service on the Same Farm as Web Application

當我嘗試從 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 服務時,不會發生此錯誤。

知道為什么會發生此錯誤嗎?

我的問題的解決方案是在負載均衡器上打開 NATing。

請求是從場中的服務器向負載均衡器發出的,然后負載均衡器將該請求發送到場中的其中一台服務器(甚至可能是請求它的同一台服務器)。 問題是,處理請求的服務器會嘗試將響應直接發送回“請求客戶端”而不是負載均衡器,因此發出請求的服務器只會忽略響應,因為它沒有被由負載均衡器發送。 通過打開 NATing,所有響應都被發送回負載均衡器,然后負載均衡器將響應發送到原始客戶端。

這只是一個猜測,但 Web 服務器真的可以看到正在使用的 IP 地址嗎? 如果它位於負載平衡器后面的場中,那么該 IP 可能被負載平衡器本身或防火牆或代理服務器阻止。

您可以通過遠程桌面訪問 Web 服務器並ping IP 地址嗎?

您場節點上的 TCP/IP 堆棧不會將調用路由到負載均衡器的 IP 地址,但會自動將其轉換為發出呼叫的特定場節點上 127.0.0.1:80 上的本地調用. 確保您的網絡服務器設置為處理這種情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM