Frage

Ich bin Debuggen einen ASMX Web-Service, „platzt“ von Anfragen empfängt. das heißt, es ist wahrscheinlich, dass der Web-Dienst 100 asynchrone Anforderungen innerhalb von etwa 1 bis 2 Sekunden erhalten. Jede Anforderung scheint sich um eine zweite zu nehmen zu verarbeiten (dies erwartet wird, und ich bin OK mit dieser Leistung). Was jedoch wichtig ist, ist, dass jede Anfrage nacheinander behandelt wird und keine parallele Verarbeitung stattfindet. Ich will keine gleichzeitige Anforderungsverarbeitung aufgrund der externen Komponenten durch den Webdienst aufgerufen. Gibt es eine Möglichkeit, den Web-Service nur zwingen kann, um jede Antwort nacheinander zu behandeln?

Ich habe das maxconnection Attribut in der machine.config gesehen, aber dies scheint nur für ausgehende Verbindungen zu arbeiten, wo, wie ich will die eingehenden Verbindungen drosseln.

Bitte beachten Sie, dass in WCF Refactoring ist zu diesem Zeitpunkt nicht in Frage.

Wir sind usinng IIS6 auf Win2003.

War es hilfreich?

Lösung

Vielleicht sollten Sie die Anforderungen Warteschlangen werden auf intern und Verarbeitung von ihnen eins nach dem anderen?

Es kann den Kunden verursachen für die Ergebnisse abzufragen (wenn sie brauchen, um sie selbst), aber Sie würden die sequentielle Pipeline erhalten Sie wollten ...

Andere Tipps

In IIS7 können Sie auf eine Website eine Grenze von Verbindungen erlaubt einrichten. Können Sie IIS7 verwenden?

Was ich in der Vergangenheit getan ist, einfach um den Zugriff auf die externe Ressource eine Sperre Aussage hat ich wurde mit. In meinem Fall war es ein Stück nicht verwalteten Code, der Thread-sicher sein beansprucht, aber die in der Tat der C-Laufzeitbibliothek Haufen von mehr als ein Thread zu einem Zeitpunkt, wenn zugegriffen Müll würden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top