狀況
請考慮下列情況:
-
您執行 Microsoft.NET Framework 3.0 或.NET Framework 3.5 為基礎的 Windows 通訊基礎 (WCF) 服務。
-
WCF 服務使用 Net.Tcp 連接埠共用服務 (Smsvchost.exe) 」 且裝載在執行網際網路資訊服務 (IIS) 的電腦上。
-
發生下列情況之一為真︰
-
CPU 使用率較高的執行 IIS 的電腦上。
-
在 WCF 服務的服務模型中,就會發生節流閥。
-
在此同時,多個要求會傳送至 WCF 服務。
-
在這個案例中,WCF 服務所耗費時間超過一分鐘,處理來自用戶端應用程式的要求。此外,錯誤訊息,將下列的事件項目會記錄在事件日誌中︰
記錄檔名稱︰ 系統
來源︰ SMSvcHost 3.0.0.0 日期︰ 事件識別碼︰ 8 工作類別︰ 共用服務 層級︰ 錯誤 關鍵字︰ 傳統 本機服務的使用者︰ 電腦︰ 描述︰ 分派重複的通訊端時發生錯誤︰ 這個控制代碼現在遺漏處理序中。 ID: 2620年 來源︰ System.ServiceModel.Activation.TcpWorkerProcess 例外狀況︰ System.TimeoutException︰ 傳送到此要求作業未收到回覆中設定的逾時 (00: 01:00)。分配給此作業的時間可能已部份較長的逾時。這可能是因為服務仍然在處理作業,或是因為服務無法傳送回覆訊息。請考慮增加作業逾時 (藉由轉型 IContextChannel 通道/proxy 並設定 OperationTimeout 屬性),並確定服務目前無法連線到用戶端。注意您必須重新啟動 IIS 來修復這個問題的 WCF 服務。
原因
之所以發生這個問題,是因為當它嘗試將連入的連線要求傳送到 W3wp.exe 的背景工作處理序的一分鐘之後逾時的 Smsvchost.exe 程序。此外,此逾時是不可設定。
當 CPU 有繁重的工作量,或連入多同時連線要求時,Smsvchost.exe 程序無法一分鐘內就到 W3wp.exe 的工作者處理序傳送連入連線。因此,Smsvchost.exe 程序逾時,最後會停止回應。發生這個問題時,則 Smsvchost.exe 程序無法在 IIS 重新啟動之前路由傳送要求到 W3wp.exe 的工作者處理序。解決方案
若要解決這個問題,套用 Microsoft 知識庫 (KB) 文件所述的 hotfix 2504602。
如需詳細資訊,按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:2504602 hotfix 彙總套件適用於 WCF.NET Framework 3.0 SP2、.NET Framework 3.5 SP1 和.NET Framework 的 4
狀態
Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。