HttpWebResponse.GetResponse() 基礎連接已經關閉: 服務器關閉了本應保持活動狀態的連接。


 

在向同一個地址短時間內連續發送 HttpWebResponse.GetResponse() 的時候總會遇到 基礎連接已經關閉: 服務器關閉了本應保持活動狀態的連接。

遇到這種情況應該是http時間的問題,軟件或硬件負載平衡環境包含那些支持 HTTP 1.1 和 keep-alive 連接, 服務器中承載 Web 服務調用可能具有終止按時間,
客戶端嘗試重用該連接。

如果此錯誤仍然出現應用此修復程序后, 請嘗試下列解決方案:(兩種方式)

一、服務器上修改

1. 打開 MicrosoftInternet 信息服務器 (IIS) 管理控制台並找到 Web 服務器。
2. 單擊 網站 選項卡的 屬性 頁為 Web 站點。
3. 單擊以清除 保持連接 - 啟用 HTTP 復選框。
 
二、代碼上
可能需要禁用 keep-alive

1. 將 HttpWebRequest 類的 KeepAlive 屬性設置 為 false 。
2. 改寫由 MicrosoftVisualStudio.NET 生成有關 Web 客戶端代理 Reference.cs 文件中 HttpWebRequest 方法。
以下代碼替代 HttpWebRequest 方法。

protected override WebRequest GetWebRequest(Uri uri)
 {
    HttpWebRequest webRequest = (HttpWebRequest) 
    base.GetWebRequest(uri);
   webRequest.KeepAlive = false;
    return webRequest;
 }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM