Почему мой клиент отправляет запрос так медленно? - PullRequest
3 голосов
/ 14 сентября 2009

У меня есть клиент WCF для отправки запроса в сервис. А мой бизнес-код вызывает клиентский API для отправки более 300 запросов в секунду. Но мой клиент отправляет на обслуживание только около 50 в соответствии со счетчиками производительности моего сервиса и WCF ServicePoint.

И я увеличил ServicePointManager.DefaultConnectionLimit в коде до 1000 и установил maxConCurrentCalls в 1000 в файле конфигурации службы, но получил небольшое улучшение.

Я думаю, в клиенте WCF может быть очередь для отправки запросов. Есть ли способ настроить его и ускорить мой клиент.

Вот моя конфигурация для клиента:

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

1 Ответ

1 голос
/ 14 сентября 2009

Возможно, вы превышаете лимит подключений для исходящих http-подключений:

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

Обратите внимание, что значением по умолчанию является 2.

...