【发布时间】:2011-02-22 02:48:29
【问题描述】:
我们有一个问题,即在负载测试期间,如果我们在其中一项服务上快速触发调用,我们会收到错误
"System.ServiceModel.ServerTooBusyException: 创建可靠会话的请求已被 RM 目标拒绝。服务器 'net.tcp://localhost:10511/ParameterMonitorService' 太忙,无法处理此请求。稍后重试. 无法打开频道。”
我们将 maxPendingChannels 的值从其默认值 4 增加到 128 甚至更大,并且错误已经消失,但是现在,服务不会抛出异常,而是停止处理负载下的消息,然后在几分钟后重新开始.
它似乎没有掉任何东西,它只是挂了一会儿。我们对服务的冲击越大,恢复所需的时间似乎就越长。
该服务被配置为具有多个并发模式的 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>
我们有点卡住了。任何帮助表示赞赏!
【问题讨论】:
标签: wcf .net-4.0 ws-reliablemessaging