修正︰ 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 產品的問題。

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

Thank you for your feedback!

Thank you for your feedback! It sounds like it might be helpful to connect you to one of our Office support agents.

×