zgsky0 2009-12-22
WCF开发框架在实际使用中经常会遇到一些问题。我们可以再实践中积累经验来应对这些问题。今天我们要了解的是有关WCF连接服务超时的相关解决问题。
调用服务器端时,当点击十次后,客户端就会出现死机,然后是一份钟超时。
System.TimeoutException: 对“http://localhost:3768/”的 HTTP 请求已超过为 00:01:00 分配的超时。为此操作分配的时间可能是较长超时的一部分。
查找原因后发现客户端在使用完通道后,没有进行释放。而服务器端默认的连接数为10,所以10次后,服务器端的连接数没有释放,导致新的连接无法访问服务。
WCF连接服务超时解决办法如下:
1、首先保证客户端每次建立的连接在使用完成后进行关闭.即调用Close方法,否则此连接会在设置的会话后才自动关闭(该自动响应时间一般为10分钟,InactivityTimeOut属性),期间任何客户端也无法使用此服务.
2、可以增加默认连接连接数.配置文件如下:
< serviceThrottling maxConcurrentCalls="20" maxConcurrentSessions="20" maxConcurrentInstances="30" />
说明:maxConcurrentCalls :最大并发数,默认为16
maxConcurrentSessions :最大的会话数,主要针对于PerSession的情况,默认为10