WCF listenBacklog和maxConnections不能设置为高于10.为什么不呢?

时间:2010-05-20 02:57:07

标签: c# .net wcf

我的服务在低负载下运行良好。但是在高负载下我开始出现连接错误。

我知道其他设置,但我正在尝试更改listenBacklog参数,特别是我的TCP缓冲绑定。

如果我设置listenBacklog =“10”,我可以远程登录到运行WCF服务的端口。

如果我将listenBacklog更改为高于10的任何内容,它将不会让我在运行时telnet到我的服务。

似乎没有错误。

我该怎么办? 当我将maxConnections从10更改为10时,我遇到同样的问题。绑定的所有其他属性我可以设置得更高而没有问题。

以下是我的绑定:

 <bindings>
  <netTcpBinding>
<binding name="NetTcpBinding_IMyService" closeTimeout="00:01:00"
  openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
  transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
  hostNameComparisonMode="StrongWildcard" listenBacklog="10" maxBufferPoolSize="524288"
  maxBufferSize="1048576" maxConnections="10" maxReceivedMessageSize="1048576">
  <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
    maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
  <reliableSession ordered="true" inactivityTimeout="00:10:00"
    enabled="false" />
  <security mode="Transport">
    <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign">
    </transport>
    <message clientCredentialType="Windows" />
  </security>
</binding>
...

我真的需要增加maxConnections和listenBacklog的值

3 个答案:

答案 0 :(得分:6)

如果您在Win2000,XP,Vista或Win7计算机上运行,​​则操作系统会限制您使用10个并发TCP连接。尝试在Windows Server计算机上运行以进行确认。

答案 1 :(得分:0)

这几乎肯定是一个限制问题。尝试为服务限制行为值指定非默认值。 See this page for some guidance

答案 2 :(得分:-2)

尝试删除对HTTP绑定和MEX的所有引用。