IIS scheint maximal einen gleichzeitigen WCF-Webdienstaufruf pro Client zuzulassen

IIS scheint maximal einen gleichzeitigen WCF-Webdienstaufruf pro Client zuzulassen

Wir haben eine Windows-Anwendung, die Webservice-Methoden für den Datenbankzugriff aufruft. Wir haben einen Fall gefunden, in dem wir einen langen (15+ Sekunden), asynchronen Webservice-Aufruf an einen WCF-Dienst auf IIS durchführen. Wenn die Benutzeroberfläche währenddessen andere, blockierende (es ist alter Code) Webservice-Aufrufe durchführt, werden diese zusätzlichen Aufrufe blockiert, bis der anfängliche asynchrone Aufruf abgeschlossen ist.

Dies geschieht nicht, wenn die Benutzeroberfläche und die Webdienste beide in Visual Studio mit IIS Express ausgeführt werden: Die blockierenden Aufrufe sind schnell und all diese Dinge sind lange vor dem Ende des langen asynchronen Aufrufs abgeschlossen.

Die Webservices verfügen alle über Folgendes:

<serviceThrottling 
    maxConcurrentCalls="5000" maxConcurrentSessions="5000" maxConcurrentInstances="5000" />

Außerdem überall maxConnections="500".

Wir möchten, dass IIS diese gleichzeitigen Webdienstaufrufe auf die gleiche Weise gleichzeitig verarbeitet wie IIS Express.

...

Falls es hilft, ergibt das alles einen Sinn: Wir führen eine Suche nach Objekten durch. Die Suche gibt die 50 wichtigsten (standardmäßig) Elemente zurück, die die Kriterien erfüllen, und gleichzeitig führen wir einen asynchronen Aufruf von count(*) für dieselbe Abfrage durch. Die Zählabfrage kann sehr lange dauern. Die Benutzer bestehen darauf, dass sie manchmal die Gesamtanzahl wissen möchten, aber normalerweise möchten sie Objekte in der Ergebnisliste öffnen können, lange bevor die Anzahl zurückkommt. Beim Öffnen der Objekte kommen die synchronen Webservice-Aufrufe ins Spiel. Früher waren die Suchergebnisse und die Anzahl alle Teil derselben Webservice-Methode.

verwandte Informationen