WCF分布式开发常见错误

参考:http://www.51crazy.net/Article/132.aspx

  之前我在做WCF有关这块工作,经常遇到这个问题,开始一般我会增加SendTimeout的值,但现在我意识到,这是一种治标不治本的方法。下面也许才是才是本质上能够避免这种超时异常。

  System.TimeoutException: 请求通道在等待 00:01:00 以后答复时超时。增加传递给请求调用的超时值,或者增加绑定上的 SendTimeout 值。分配给此操作的时间可能是更长超时的一部分。 --->

System.TimeoutException: 对“http://localhost:8680/ReportService.svc”的 HTTP 请求已超过为 00:01:00 分配的超时。为此操作分配的时间可能是较长超时的一部分。 ---> System.Net.WebException: 操作超时

解决方案:*
1)首先保证客户端每次建立的连接在使用完成后进行关闭.即调用Close()方法,否则此连接会在设置的会话(一般为10分钟)后才自动关闭.期间任何客户端也无法使用此服务.
2)如果默认的连接数不能满足客户端的需要,可以增加连接数.配置文件如下:
说明:maxConcurrentCalls :最大并发数,默认为16
maxConcurrentSessions :最大的会话数,主要针对于PerSession的情况,默认为10
maxConcurrentInstances:最大实例数,默认为26
3)使用Using关键字释放服务代理对象,但有的时候,过于频繁实例服务代理对象对性能也会受到影响,这就需要在两者之间做出权衡问题。折中的一个解决办法,我认为比较合适。

http://www.cnblogs.com/frank_xl/category/180722.html

转载于:https://www.cnblogs.com/cuiwenke/archive/2011/01/31/1948176.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值