修正︰ WCF 服務的 Smsvchost.exe 時停止回應或.NET Framework 3.5.NET Framework 3.0 中,執行 WCF 服務

狀況

請考慮下列情況:

  • 您執行 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 產品的問題。

需要更多協助?

擴展您的技能
探索訓練
優先取得新功能
加入 Microsoft 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×