Situation: Klassische ASP-Anwendung, die einen benutzerdefinierten Anwendungspool verwendet. Standardeinstellungen.IIS7 - dient nur jeweils eine Seite gleichzeitig. Es macht mich verrückt!
Auf einige IIS7-Computer, IIS beschließt, nur eine Seite zu einer Zeit zu dienen. Wenn also mehrere Seiten von einer Site geladen werden, muss jede Seite nacheinander geladen werden.
z.B. Wenn ich http://foo.com/default.asp von einem Browser lade, und von einem anderen Rechner, den ich http://foo.com/differenturl.asp lade, muss der erste fertig sein, bevor der andere lädt. Es ist fast so, als wäre der w3p-Prozess single-threaded.
Hinweis: In den erweiterten Einstellungen für IIS gibt es eine Einstellung mit dem Namen MaxProcesses, die lautet "Legen Sie diese auf größer als 1 fest, um einen Webgarten zu erstellen" (was auch immer das ist). Dies löst das Problem NICHT, da dies mehrere Prozesse mit ihrem eigenen Sitzungsstatus usw. hervorbringt, und wenn Sie http://foo.com/default.asp laden, gibt es keine Möglichkeit zu garantieren, dass Sie demselben Prozess zugewiesen werden.
Das Problem offenbarte sich, weil wir eine Diagnoseseite haben, die in ASP geschrieben wird, und ActiveX-Steuerelement erstellt, das eine URL auf der Website lädt und die Ergebnisse zurückgibt.
Also, diagnostics.asp lädt und im Code auf der Serverseite erstellt es ein kleines Web-Steuerelement, das auf dem gleichen Server lädt (denke XMLHTTP-Steuerelement) default.asp.
Diese Seite wird NIEMALS fertig geladen, da der Server darauf wartet, dass die Seite diagnostics.ASP beendet wird, bevor sie die Seite default.asp bedient. Sackgasse!
Dies funktioniert gut auf jedem IIS6-Computer da draußen, und ich glaube, es gibt einige IIS7-Server, wo es auch funktioniert.
Ich habe festgestellt, es ist auch kein Ergebnis unserer skurrilen Diagnose. Das Laden mehrerer Registerkarten von einem Computer oder sogar von separaten Computern zeigt an, dass der Webprozess sie einzeln verarbeitet.
Richtige Antwort von AnthonyWJones: Server-Side-Debugging wurde in IIS7 eingeschaltet. Dies versetzt IIS in den Single-Thread-Modus.
crosspostete hier http://forums.iis.net/p/1155632/1894991.aspx#1894991 –
Könnten Sie schreiben, welcher Teil der ausgewählten Antwort geholfen? Was war der Grund für das Problem? –
werde ich wenn ich es herausfinden. Ich weiß es noch nicht, da ich meine Maschine, nur einen Kunden (und er ist im Urlaub) nicht reprosieren kann. –