我们有一个问题,在负载测试期间,如果我们在我们的一项服务上快速触发调用,我们会收到错误
“System.ServiceModel.ServerTooBusyException:创建可靠会话的请求已被 RM 目的地拒绝。服务器 'net.tcp://localhost:10511/ParameterMonitorService' 太忙,无法处理此请求。请稍后再试。频道不能打开。”
我们将 maxPendingChannels 的值从它的默认值 4 增加到 128 甚至更大,并且错误已经消失,但是现在,服务不会抛出异常,而是停止处理负载下的消息,然后在几分钟后重新开始。
它似乎没有掉落任何东西,它只是挂了一会儿。我们对服务的冲击越大,这种恢复似乎需要的时间就越长。
该服务配置为具有 ConcurrencyMode Multiple 的 Per-Call。其他行为设置是:
<serviceThrottling maxConcurrentCalls="100" maxConcurrentSessions="100" maxConcurrentInstances="100"/>
<customBinding>
<binding name="Services_Custom_Binding" openTimeout="00:00:20" sendTimeout="00:01:00">
<reliableSession ordered="true" inactivityTimeout="00:10:00" maxPendingChannels="128" flowControlEnabled="true" />
<binaryMessageEncoding>
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</binaryMessageEncoding>
<tcpTransport maxPendingConnections="100" listenBacklog="100" />
</binding>
</customBinding>
我们有点卡住了。任何帮助表示赞赏!