2010-07-30 11 views
5

Ich habe einen Client-Prozess, der versucht, mehrere gleichzeitige Anfragen an einen Server mit 'BasicHttpBinding'. Der Client versucht, 10 oder mehr gleichzeitige Anforderungen an den Server zu senden, aber die Serverprotokolle zeigen an, dass zu einem Zeitpunkt immer nur zwei gleichzeitige Anforderungen ausgeführt werden, was dann offensichtlich den vom Client generierten Durchsatz verlangsamt. Es scheint, dass auf der Client-Seite etwas Drosselung stattfindet. Die Konfiguration, die wir mit vom Diensteanbieter zur Verfügung gestellt worden, enthält ein Verhalten wie folgt:Überschreiben Wcf Client Max Verbindungen, verhindern clientseitige Drosselung

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

Auch haben wir den folgenden Verbindungsmanagement-Eintrag im Client:

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

Also, was ich tun Sie müssen tun, um zu verhindern, dass die Drosselung auf dem Client auftritt, so dass es mehr als 2 max gleichzeitige Anforderungen an einen WCF-Dienst geben kann, dank

Antwort

3
System.Net.ServicePointManager.DefaultConnectionLimit = 100;