Ich versuche, eine lange Umfrage ("reverse ajax", "http push") Funktion in eine bestehende ASP.NET MVC 1-Webanwendung auf .NET 3.5 SP1 ausgeführt nachrüsten . Da diese Anwendung Tausende von gleichzeitigen Nutzern hat und alle von ihnen die Funktion der langen Abfrage nutzen werden, Ich befürchte, dass ich auf Server- und Verbindungsgrenzen stoßen werde, die schwer vorherzusehen und zu testen sind.
Nach der Lektüre Artikel von Thomas Marquardt über die ASP.NET-Thread-Nutzung auf IIS 7.0 und 6.0 auf die in vielen Fragen zu langen Umfragen hier und anderswo Bezug genommen wird, ist es scheint dass el Standard Einstellungen für einen Windows Server 2008 R2 (mit IIS 7.5), auf dem eine ASP.NET MVC 1-Anwendung (in .NET 3.5 SP1) ausgeführt wird, bei der die lange Abfragefunktion mit asynchronen Controllern von MVC Futures implementiert wird no in der Lage sein, Tausende von Nutzern zu bedienen.
Der erste Übeltäter scheint zu sein maxConcurrentRequestsPerCPU
der in .NET 3.5 SP1 auf 12 gesetzt ist. so Marquardt. Das bedeutet, dass für Tausende von gleichzeitigen langen Abfragen Hunderte von CPUs benötigt werden, oder? Denn unabhängig davon, ob asynchrone Controller verwendet werden oder nicht, ist eine lange Abfrage immer noch eine HTTP-Anfrage. Ich würde dies zu erhöhen müssen. Verstehe ich das richtig?
Da ich asynchrone Controller verwende, gehe ich davon aus, dass ich die Anzahl der gleichzeitigen Worker-Threads pro CPU nicht ändern muss, da der Thread, der auf die Auslösung der langen Abfrage wartet, abgewickelt wird. Verstehe ich das richtig? Oder hängt dies davon ab, wie genau das "Warten" in der Methode der langen Umfrageaktion erreicht wird? (Ich hatte vor, Ereignisse zu verwenden.)
Gibt es darüber hinaus noch andere Einschränkungen, auf die ich stoßen werde? Ich möchte nicht anfangen, wahllos die Werte in machine.config
o aspnet.config
(oder sogar web.config
), und ich würde gerne die autoConfig
の processModel
wenn möglich.
(Ich habe alle Fragen hier gelesen, aber keine speziell graben in Details in Bezug auf diese, vermutlich da es mit der Anzahl der CPUs, CLR-Version, etc. variiert).
Vielen Dank im Voraus!