.net 当达到最大WCF连接数时会发生什么情况?
我们有一个服务(a),它调用另一个WCF服务(B) 服务B的默认值为.net 当达到最大WCF连接数时会发生什么情况?,.net,wcf,concurrency,.net,Wcf,Concurrency,我们有一个服务(a),它调用另一个WCF服务(B) 服务B的默认值为 <serviceThrottling maxConcurrentCalls="16" maxConcurrentSessions="10" maxConcurrentInstances="26" /> 服务A最多可以产生150个线程,其中一些线程可以称为服务B 如果服务A调用服务B的并发连接数超过最大值,会发生什么情况 服务B(WCF)是否将它们丢弃或存储在队列中?客户
<serviceThrottling
maxConcurrentCalls="16"
maxConcurrentSessions="10"
maxConcurrentInstances="26" />
服务A最多可以产生150个线程,其中一些线程可以称为服务B
如果服务A调用服务B的并发连接数超过最大值,会发生什么情况
服务B(WCF)是否将它们丢弃或存储在队列中?客户端被阻止,直到连接可用 当然,此行为表示存在另一个队列,该队列包含等待的连接请求。我假设队列有自己的阈值,所以一旦等待连接的数量达到最大值,就会丢弃更多的传入请求。(这只是我的猜测,我不知道这个理论队列是在哪里配置的……有人吗?) 实际上,我在自动测试中遇到了一个问题,连接没有断开,这最终导致我的系统挂起,因为达到了阈值
额外的调用将等待定义的超时时间,如果在此时间内没有服务实例可用,它们将失败(很可能是
TimeoutException
)。@marc_s-我很好奇为什么你会将这些信息放在注释中而不是答案中。安德鲁,你的答案非常好,谢谢。我回到这里是因为我想知道如何限制排队,你有没有发现什么,或者你能给我指个方向?你认为这可能与tcp积压工作有关吗?