Передача данных замедляется с течением времени при отправке данных в службу WCF от клиента WCF (привязка NET.TCP) - PullRequest
2 голосов
/ 23 февраля 2011

У меня есть клиент WCF, который устанавливает соединение с сервером WCF. Когда я запускаю хост-приложение, клиент работает нормально, своевременно получает и отвечает на запросы. Но через минуту или около того и с повышенной нагрузкой процесс замедляется до ползания.

Я отследил проблему до времени, необходимого для отправки ответа на сервер WCF. Отправка простого текста (не более 2 Кб) занимает 10-15 секунд, а иногда и дольше.

Сам сервер WCF работает отлично (насколько я знаю)

Существуют ли какие-либо конкретные настройки, которые я могу настроить, чтобы ускорить пропускную способность или исправить ситуацию?

Сервисы связываются с привязкой net.tcp. Вот мои настройки конфига

<system.serviceModel>
    <bindings>
        <netTcpBinding>
            <binding name="NetTcpBinding_Comms" 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="500"
                maxBufferPoolSize="524288" maxBufferSize="65536"
                maxConnections="500" maxReceivedMessageSize="65536">
                <readerQuotas maxDepth="32" maxStringContentLength="8192"
                    maxArrayLength="16384" maxBytesPerRead="4096"
                    maxNameTableCharCount="16384"/>
                <reliableSession ordered="true" inactivityTimeout="00:10:00"
                    enabled="false"/>
                <security mode="None">
                    <transport clientCredentialType="Windows"
                        protectionLevel="EncryptAndSign"/>
                    <message clientCredentialType="Windows"/>
                </security>
            </binding>
        </netTcpBinding>
    </bindings>

    <client>
        <endpoint address="net.tcp://a.b.com:9150/Comms/"
            binding="netTcpBinding" bindingConfiguration="NetTcpBinding_Comms"
            contract="Outside.Comms" name="NetTcpBinding_Comms">
            <identity>
                <dns value="a.b.com"/>
            </identity>
        </endpoint>
    </client>
</system.serviceModel>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...