简体   繁体   English

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

[英]WCF listenBacklog and maxConnections can't be set higher than 10. Why not?

My service works great under low load. 我的服务在低负载下运行良好。 But under high load I start to get connection errors. 但是在高负载下我开始出现连接错误。

I know about other settings but I am trying to change the listenBacklog parameter in particular for my TCP Buffered binding. 我知道其他设置,但我正在尝试更改listenBacklog参数,特别是我的TCP缓冲绑定。

If I set listenBacklog="10" I am able to telnet into the port where my WCF service is running. 如果我设置listenBacklog =“10”,我可以telnet到运行我的WCF服务的端口。

If I change listenBacklog to anything higher than 10 it will not let me telnet into my service when it is running. 如果我将listenBacklog更改为高于10的任何内容,它将不会让我在运行时telnet到我的服务。

No errors seem to be thrown. 似乎没有错误抛出。

What can I do? 我能做什么?
I get the same problem when I change my maxConnections away from 10. All other properties of the binding I can set higher without a problem. 当我从10更改maxConnections时,我遇到同样的问题。绑定的所有其他属性我可以设置得更高而没有问题。

Here is what my binding looks like: 这是我的绑定看起来像:

 <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>
...

I really need to increase the values of maxConnections and listenBacklog 我真的需要增加maxConnections和listenBacklog的值

If you're running on a Win2000, XP, Vista or Win7 machine, then the OS is limiting you to 10 concurrent TCP connections. 如果您在Win2000,XP,Vista或Win7计算机上运行,​​那么操作系统将限制为10个并发TCP连接。 Try running on a Windows Server machine to confirm. 尝试在Windows Server计算机上运行以进行确认。

This is almost certainly a throttling issue. 这几乎肯定是一个限制问题。 Try specifying non-default values for the service throttling behavior values. 尝试为服务限制行为值指定非默认值。 See this page for some guidance . 请参阅此页面以获取一些指导

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 有关WCF netTcpBinding中的“ ListenBackLog”参数的问题 - Question on the “ListenBackLog” parameter in WCF netTcpBinding 在执行POST时,无法将HttpWebRequest超时设置为高于100秒? - Can't set HttpWebRequest timeout higher than 100 seconds when doing a POST? 如果 WCF 中的 .netTcpbinding 达到 maxConnections,将会发生什么行为 - What would be the behavior if maxConnections is reached for netTcpbinding in WCF 为什么我的WCF客户端无法连接到我的WCF服务? - Why can't my WCF Client connect to my WCF Service? WCF为什么不能在字典中传递对象? - Why can't WCF pass an object in a dictionary? 如果不能容纳足够多的有效数字,那么双精度数如何代表比小数更高的数字? - How can doubles represent higher numbers than decimals if they can't hold as many significant figures? 我在Windows 10上使用VS2017编译了一个安装项目。它可以在XP上运行吗? - I compiled a setup project with VS2017 on Windows 10. Can it run on XP? Windows 10中的UDP问题.UWP - Problems with UDP in windows 10. UWP 为什么我在WCF服务中找不到证书? - Why I can't find the certificate in a WCF Service? 为什么我不能在Wcf对象中指定NonSerialized - Why can't I specify NonSerialized in Wcf object
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM