症状
请考虑以下情形:
-
运行 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 产品中的问题。