【发布时间】:2011-10-07 15:59:01
【问题描述】:
我有以下场景:
我们的 .NET 客户端调用我们的 WCF 服务,后者又调用外部第三方服务来检索一些数据。检索到数据后,我们的 WCF 服务会设置一些值,然后将控件返回给客户端。调用外部服务的过程必须是同步的。
我的问题是这一切都在低负载环境中工作,但是当负载变高时,我们开始排队多个请求,WCF 服务开始超时。我们已将绑定的“sendTimeout”属性设置为 5 秒,然后超时。
我尝试用模拟的本地版本替换外部服务,并且可以正常处理负载,但同时对外部服务的调用非常快 - 大约 0.5 秒。我只能假设发生超时是因为排队的请求太多,而 WCF 服务无法在分配的 5 秒内响应。
我尝试了以下方法:
- 将 maxConcurrentCalls、maxConcurrentSessions 和 maxConcurrentInstances 的值设置为非常高的数字
- 将 system.net - connectionManagement - maxconnection 的值设置为非常高的数字
有没有人知道我们可以在这个场景中做什么?
【问题讨论】:
-
您的重负载条件是否也可能是外部服务的重负载?您是否尝试在相同的负载级别直接调用外部服务?
-
我打算试试看。下次我周一回到办公室时会这样做。
标签: wcf