无法打开WCF服务 - 客户端调用太多

时间:2012-09-12 15:05:55

标签: wcf web-services timeout wcf-client endpoint

我在Windows服务中托管了WCF Web服务。

使用以下属性(VB)配置服务

<ServiceBehavior(ConcurrencyMode:=ConcurrencyMode.Multiple,
InstanceContextMode:=InstanceContextMode.PerCall,
UseSynchronizationContext:=False)>

我创建了一个测试客户端,它一次创建了50个线程,我立即启动它们,都在WCF服务上查询操作。前30个左右的开口(client.open())工作,但之后我在客户端收到一条错误消息,因为尝试打开服务时出现超时,因此无法完成打开,因此我收到EndPointNotFoundException 。 (如果重要的话,我打电话的操作都是同步的。)

我可以期待这种行为,因此只需要忍受这些异常,或者我必须查看我的一些设置,无论是上述设置还是其他任何设置? (我正在使用NetTcpBinding。)

我看到的是客户端同时处理同时创建的线程的请求,因此上述设置具有使服务多用户同时启用的所需效果。

但理想情况下我不会得到超时异常。相反,我希望客户等待更长时间才能获得他们的回复,而不是超时。

有什么想法吗?

全部谢谢!

1 个答案:

答案 0 :(得分:1)

检查以下设置:

<behavior name="CommonServices_Behavior">
  <serviceThrottling maxConcurrentCalls="100" maxConcurrentSessions="50"
   maxConcurrentInstances="50" />
</behavior>

我似乎记得其中一些值在machine.config文件中设置了默认值。还有MaxConnections value to check for NetTcpBinding