达到最大WCF连接数时会发生什么?

时间:2012-04-23 06:32:23

标签: .net wcf concurrency

我们有一个服务(A)调用另一个WCF服务(B)。

服务B的默认值为

<serviceThrottling 
      maxConcurrentCalls="16"
      maxConcurrentSessions="10" 
      maxConcurrentInstances="26" />

服务A最多可以产生150个线程,其中一些线程可以调用服务B.

如果服务A调用的服务B超过最大并发连接数,会发生什么?

服务B(WCF)是否会抛弃它们或将它们存储在队列中?

1 个答案:

答案 0 :(得分:3)

客户端被阻止,直到连接可用。

当然,此行为表示存在另一个队列,持有等待连接请求。我假设队列有自己的阈值,所以一旦有最大数量的等待连接,进一步的传入请求将被丢弃。 (这只是我的猜想,我不知道这个理论队列在哪里配置。.....有人吗?)。

我实际上在自动化测试中遇到了一个问题,即连接没有被丢弃,这最终导致我的系统挂起,因为达到了阈值。

https://stackoverflow.com/a/4031284/25216