WCF分布式开发常见错误(20):TimeoutException was unhandled

在进行WCF应用程序开发的时候,如果大量客户端发送请求到WCF服务,往往会出现这个异常,超时。WCF服务响应超时。没有在指定的时间00:01:00内打开操作,分配给这个操作的时间或许只是超时时间的一部分。

错误信息如下:

The open operation did not complete within the allotted timeout of 00:01:00. The time allotted to this operation may have been a portion of a longer timeout.

【1】错误截图:

【2】原因分析:

这个超时异常的产生,直接导致的原因是,大量的客户端请求发送给服务。我这里使用的100个客户端,实例化100个代理。然后请求。模拟客户端的大量并发请求。服务基本延时100MS。模拟处理。这里大概在10个请求的时候,服务处理出现阻塞。进而等待,最后出现超时异常。

【3】解决办法:

涉及到大量请求的时候,可以考虑使用WCF的 ServiceThrottlingBehavior 属性。

  名称 说明
MaxConcurrentCalls 获取或设置一个值,该值指定整个 ServiceHost 中正在处理的最多消息数。
MaxConcurrentInstances 获取或设置一个值,该值指定服务中可以一次执行的最多 InstanceContext 对象数。
MaxConcurrentSessions 获取或设置一个指定 ServiceHost 对象可一次接受的最多会话数的值。

这里我们设置一下服务的限流行为就可以了。具体如下:

serviceBehaviors>

<behavior name="WCFService.WCFServiceBehavior">

<serviceTimeouts transactionTimeout="00:01:00"/>

<serviceMetadata httpGetEnabled="true" />

<serviceDebug includeExceptionDetailInFaults="false" />

<serviceThrottling maxConcurrentCalls="1000" maxConcurrentInstances="1000" maxConcurrentSessions="1000"/>-->

</behavior>

</serviceBehaviors>

这里1000可以修改,根据你的实际WCF服务需求量。服务激活类型和实例调用方式。然后进行调整。修改完毕以后,重新启动服务,基本就正常了。

出处:http://www.cnblogs.com/frank_xl/archive/2009/07/22/1528911.html

时间: 2024-12-31 02:24:39

WCF分布式开发常见错误(20):TimeoutException was unhandled的相关文章

WCF分布式开发常见错误

WCF分布式开发常见错误(30) WCF分布式开发常见错误(29) WCF分布式开发常见错误(28) WCF分布式开发常见错误(27) WCF分布式开发常见错误(26) WCF分布式开发常见错误(25) WCF分布式开发常见错误(24) WCF分布式开发常见错误(23) WCF分布式开发常见错误(22) WCF分布式开发常见错误(21) WCF分布式开发常见错误(20):TimeoutException was unhandled WCF分布式开发常见错误(19) WCF分布式开发常见错误(18

WCF分布式开发常见错误(19)

WCF分布式开发常见错误(19):There was an error opening the queue打开消息队列出错 在调试托管宿主 WCF MSMQ消息队列代码的时候出现错误: There was an error opening the queue. Ensure that MSMQ is installed and running, the queue exists and has proper authorization to be read from. The inner exc

WCF分布式开发常见错误(15)

WCF分布式开发常见错误(15):Communication with the underlying transaction manager has failed 今天本地调试WCF事务的时候出现这个错误:Communication with the underlying transaction manager has failed. 搜索了很多资料,查找原因.是因为MSDTC的问题.此协议要使用分布式事务协调器. 或者是事务协议的问题. 解决办法: 修改事务通信协议. <bindings>

WCF分布式开发常见错误(13)

WCF分布式开发常见错误(13):The transaction under which this method call was executing ,此方法调用的事务被异步中断 今天WCF事务编程的时候遇到这个错误:The transaction under which this method call was executing was asynchronously aborted.此方法调用的事务被异步中断. 错误截图如下: 原因可能由多个.我查询了很多资料.国内论坛很少有人讨论这个问题

WCF分布式开发常见错误解决(12)

WCF分布式开发常见错误解决(12):The server was unable to process the request,服务无法处理请求 进行WCF编程过程中会遇到这样的错误:服务无法处理的请求由于内部错误. 具体信息如下: The server was unable to process the request due to an internal error. For more information about the error, either turn on IncludeEx

WCF分布式开发常见错误解决(11)

WCF分布式开发常见错误解决(11):There is already a listener on IP endpoint ,IP 终结点 已经存在侦听器 进行WCF服务终结点配置的过程中,当你配置服务终结点端口,启动服务程序的时候会遇到如下错误,服务无法启动,1.错误信息如下: IP终结点(端口) 0.0.0.0:8002已经存在一个侦听器,请确保程序中没有多次使用一个终结点,或别的程序没有监听此终结点(端口) There is already a listener on IP endpoin

WCF分布式开发常见错误解决(10)

WCF分布式开发常见错误解决(10):套接字连接中断,The socket connection was aborted (使用Windows Service作为宿主的时候也会出现这样的情况,搜索的) 我们这里是自定义托管宿主,在进行WCF编程开发过程时,使用NetTcpBinding绑定协议,作为通讯协议,可能会引发这样的异常,导致数据如法传输.套接字连接中断,可能是由于消息处理错误,或者远程宿主接受超时引起,或者是底层网络资源问题导致,本地套接字时间是'00:00:59.7656250'.具

WCF分布式开发常见错误解决(9)

WCF分布式开发常见错误解决(9):无终结点监听,There was no endpoint listening at 当我们添加服务元数据地址,查找元数据服务,进行反序列操作.会出现这样的错误:无终结点监听Metadata contains a reference that cannot be resolved: 'net.tcp://localhost:9004/mex'. There was no endpoint listening at net.tcp://localhost:9004

WCF分布式开发常见错误解决(7)

WCF分布式开发常见错误解决(7):System.InvalidOperationException,Cannot have two operations in the same contract 我们启动服务宿主程序的时候,有可能出现如下的无效操作异常,信息如下: Cannot have two operations in the same contract with the same name, methods SayHello and SayHello in type WCFService