修复︰ Smsvchost.exe 为 WCF 服务停止响应或.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),宿主在运行 Internet Information Services (IIS) 的计算机上。

  • 满足以下条件之一为真︰

    • CPU 使用率很高运行 IIS 的计算机上。

    • 在 WCF 服务的服务模型中出现油门。

    • 在同一时间到 WCF 服务发送多个请求。

在这种情况下,WCF 服务时间超过一分钟要处理来自客户端应用程序的请求。此外,在事件日志中记录汇编下列事件项的错误消息︰

登录名称︰ 系统

来源︰ SMSvcHost 3.0.0.0

日期︰

事件 ID: 8

任务类别︰ 共享服务

级别︰ 错误

关键词: 经典

用户︰ 本地服务

计算机︰

说明︰ 调度复制套接字时出现错误︰ 此句柄现在泄漏过程中。

ID: 2620年

来源︰ System.ServiceModel.Activation.TcpWorkerProcess

例外情况︰

System.TimeoutException︰ 发送到此请求操作未收到答复在配置的超时 (00: 01:00)。分配给此操作的时间可能是更长超时的一部分。这可能是因为该服务仍在处理操作或服务不能发送回复消息。请考虑增加操作超时 (被强制转换为 IContextChannel 通道/代理并设置 OperationTimeout 属性),请确保该服务无法连接到客户端。

注意:您必须重新启动 IIS 才能恢复此问题从 WCF 服务。

原因

因为 Smsvchost.exe 进程超时后一分钟,它试图将传入的连接请求传送到 W3wp.exe 工作进程时,将出现此问题。另外,此超时是不可配置的。

CPU 已繁重的工作量,或有许多并发连接请求传入时,Smsvchost.exe 进程无法将传入的连接到 W3wp.exe 工作进程后一分钟内。因此,Smsvchost.exe 进程超时并最终停止响应。发生此问题时,Smsvchost.exe 进程不能以后将请求路由到 W3wp.exe 的工作进程直到重新启动 IIS。

解决方案

若要解决此问题,请应用 Microsoft 知识库 (KB) 文章中介绍的修复程序 2504602。

有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2504602修复程序汇总包是 wcf.NET Framework 3.0 SP2 中,.NET Framework 3.5 SP1 并在.NET Framework 4 中可用

状态

Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

你对翻译质量的满意程度如何?

哪些因素影响了你的体验?

是否还有其他反馈?(可选)

谢谢您的反馈意见!

×