Windows
與 IIS 的連接有時會卡在 CLOSE_WAIT 狀態
我們的應用程序包括一個只需要處理少數客戶端的 ASP.Net Web 服務。因此,Windows XP Pro 的 10 個傳入連接限制通常不是問題。但是,在一台特定的伺服器上,連接有時會卡在 CLOSE_WAIT 狀態。這些連接隨著時間的推移而建立,最終新的客戶端連接被拒絕,因為最大連接數已用完。
從我的Google搜尋看來,Web 服務無法正確關閉連接可能會導致此問題,但由於它在數百台其他 Windows XP pro 機器上執行良好,我看不出它是我們程式碼中的錯誤。它在受影響的機器上也執行良好,直到最終使用者出現一些惡作劇(我認為他們開始刪除重複文件以減少磁碟使用量,但他們並沒有完全解決這個問題)。
使用者可以進行哪些更改來引入此問題?有什麼辦法可以強制 CLOSE_WAIT 中的連接超時而不是讓它們閒逛?我已經看到減少 TcpTimedWaitDelay 的建議,但這僅與 TIME_WAIT 狀態有關,更改它沒有任何效果。
像這樣的問題通常是與需要關閉和處置的對象相關的程式碼,但您的故事表明情況並非如此。我會在網站的“網站”選項卡上檢查您的連接超時。預設值為 120 秒。如果已經提出,那麼它可能會比其他機器保持更多的連接。
還要檢查 IIS 日誌以查看是否有異常流量。如果您有機器人或其他東西更頻繁地訪問您的網站,您可能會比過去更早地達到連接限制。