簡體   English   中英

HttpWebRequest不返回,連接關閉

[英]HttpWebRequest not returning, connection closing

我有一個正在輪詢另一台服務器上的Web服務的Web應用程序。 該服務器位於同一網絡上,並由運行在端口8080上的內部IP引用。

每隔15秒發送一次請求,該請求將接收帶有作業信息的xml響應。 95%的情況下,此方法運行良好,但是在隨機時間,對服務器的請求為空,並報告“遠程主機強制關閉的響應”。

研究此問題后,其他人將KeepAlive = false設置為。 這還沒有解決問題。 Web服務器正在運行.NET 3.5 SP1。

Uri serverPath = new Uri(_Url);

// create the request and set the login credentials
_Req = (HttpWebRequest)WebRequest.Create(serverPath);
_Req.KeepAlive = false;
_Req.Credentials = new NetworkCredential(username, password);
_Req.Method = this._Method;

致電回復:

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
_ResponseStream = response.GetResponseStream();

此方法是GET。 我嘗試更改超時,但是默認值足夠大,可以考慮到這一點。

我們執行的另一個請求是將數據發布到服務器的POST,並且我們也隨機遇到相同的問題。 沒有防火牆會影響到此,因此我們排除了病毒掃描程序。 任何幫助解決此問題的想法將不勝感激!

您是否正在關閉響應流並處理響應本身? 這是WebRequest發生“掛起”的最常見原因-您可以同時打開同一台計算機的連接數是有限制的。 GC最終將最終確定連接,但是如果正確處理它們,這不是問題。

將FtpWebRequest對象的超時屬性設置為最大,我嘗試使用4 GB的文件進行嘗試,並且效果很好。

我不會排除網絡問題作為問題的可能原因。 您是否對服務器運行ping命令以查看是否丟失了與失敗請求時間相同的數據包?

暫無
暫無

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

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