Frage

Ich schreibe eine ASP.NET Web-Anwendung, die auf Windows Server 2008 (IIS7) ausgeführt wird.

Jede Seite der Code-Behind muß mindestens einen synchronen Web-Service-Aufruf an einen externen Server machen mit HttpWebRequest und GET.

Meine Frage - Gibt es eine Begrenzung für die Anzahl der ausgehenden HttpWebRequest Anrufe ich machen kann? (Unter der Annahme, dass der Server ich rufe hat keine Grenze)

Gibt es eine Möglichkeit, diese Verbindungen zu bündeln besser den App Maßstab zu machen? Würde eine Webgarten Konfiguration Hilfe?

War es hilfreich?

Lösung

Standardmäßig werden ein HTTP / 1.1-Server ist mit zwei Anschlüssen beschränkt und ein HTTP / 1.0-Server ist auf vier Verbindungen begrenzt. So wird Ihre ASP.NEt App schwere Durchsatz Probleme hat, wenn Sie mehr als zwei ausstehende Anforderungen an einen HTTP / 1.1-Server zur Ausgabe versuchen, für zB.

Sie müssen das Verbindungslimit erhöhen, entweder pro Server oder global.

Für zB global:

ServicePointManager.DefaultConnectionLimit = 10; // allow 10 outstanding connections

Hope, das hilft.

Andere Tipps

Ich glaube, Ihre Frage sollte in Richtung Netzwerkkonfigurationen ausgerichtet sein.

Ich würde sagen, Sie Probleme fragen, ob jede Seite auf einem synchronen externen Anruf abhängig ist. Was passiert, wenn Sie eine Anzahl von N Anfrage erhalten, die auf dem externen Web-Service (s) aufgehängt werden? Sie werden einige Probleme auf Ihrer Seite haben, dann und Sie können darüber nichts tun.

Haben Sie darüber nachgedacht Asynchron-Anrufe mit Rückrufe?

EDIT: Asynchronous Seiten in ASP.NET 2.0

Der folgende Link verweist auf einen wirklich großen Artikel für die Optimierung von Asp.net.

http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx

Hoffe, es hilft;)

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