Переопределить максимальное количество подключений Wcf Client, предотвратить троттлинг на стороне клиента - PullRequest
5 голосов
/ 30 июля 2010

У меня есть клиентский процесс, который пытается выдать несколько одновременных запросов к серверу, используя «BasicHttpBinding». Клиент пытается выдать 10 или более одновременных запросов к серверу, но журналы сервера указывают, что в любой момент времени выполняется не более 2 одновременных запросов, что, очевидно, замедляет пропускную способность, генерируемую клиентом. Похоже, что на стороне клиента происходит некоторое удушение. Конфигурация, предоставленная нам поставщиком услуг, содержит следующее поведение:

        <basicHttpBinding>
            <binding name="BasicHttpBinding_IService" closeTimeout="00:01:00"
                openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="01:00:00"
                allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                maxBufferSize="2047483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2047483647"
                messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                useDefaultWebProxy="true">
                <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="1073741823"
                    maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                <security mode="TransportCredentialOnly">
                    <transport clientCredentialType="Windows" proxyCredentialType="None"
                        realm="" />
                    <message clientCredentialType="UserName" algorithmSuite="Default" />
                </security>
            </binding>
        </basicHttpBinding>

Кроме того, у нас есть следующая запись управления соединением в клиенте:

<system.net>
    <connectionManagement>
        <add address="*" maxconnection="10" />
    </connectionManagement>
</system.net>

Итак, что мне нужно сделать, чтобы предотвратить троттлинг на клиенте, чтобы к службе WCF могло быть более 2-х макс. Одновременных запросов, спасибо

1 Ответ

4 голосов
/ 17 сентября 2013
System.Net.ServicePointManager.DefaultConnectionLimit = 100;
...