Мой сервис работает отлично при низкой загрузке. Но при высокой загрузке я начинаю делать пересадку ошибки.
Я знаю о других настройках, но я пытаюсь изменить listenBacklog параметр в особенности для моего TCP Буферизированная привязка.
Если я установил listenBacklog = "10", я могу к telnet в порт, куда моя услуга WCF работает.
Если я изменю listenBacklog на что-нибудь выше, чем 10, то он не позволит мне telnet на мою службу, когда он будет работать.
Никакие ошибки, кажется, не брошены.
Что я могу сделать?
Я получаю ту же проблему, когда я изменяю свой maxConnections далеко от 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
Это почти наверняка проблема с дросселированием. Попробуйте указать значения, отличные от значений по умолчанию, для значений поведения регулирования службы. См. Некоторые инструкции на этой странице .
Если вы работаете на машине Win2000, XP, Vista или Win7, то ОС ограничивает вас до 10 одновременных TCP-соединений. Попробуйте запустить на машине Windows Server для подтверждения.