Ich habe eine ASP.NET (v4.0) Web-App, die in einem virtuellen Verzeichnis (als Anwendung) installiert ist und in einem eigenen App-Pool gehostet wird. Dies wird für jede Instanz der App (dh pro Kunde) wiederholt.
Die App-Pools sind im integrierten (nicht klassischen) Modus und LoadUserProfile ist auf true gesetzt. Ansonsten Standardeinstellungen.
Jede Instanz verfügt derzeit über eine eigene Kopie des Codes / der Konfiguration und einen eigenen Datenordner (Basisdatei lesen / schreiben).
1 Instanz dieser App läuft einwandfrei (der zum Vergleich verwendete Vorgang dauert ~ 4 Sekunden). Jede zweite Instanz wird langsam ausgeführt (von 10 bis 25 Sekunden für den gleichen Vorgang).
Wenn ich die langsamere Instanz in den "schnellsten" App-Pool verschiebe, wird diese Instanz zum Leben erweckt. Wenn ich die schnellere Instanz in den langsameren App-Pool verschiebe, wird diese Instanz zu einem Crawl verlangsamt.
Die App-Pools wurden zunächst auf die gleiche Weise erstellt - manuell. Ich habe später die Powershell-Kopierroutine verwendet, um eine exakte Kopie des schnelleren App-Pools und immer noch das gleiche Verhalten sicherzustellen. Der Vergleich der apppool.config-Dateien zeigt, dass sie bis auf die Zuweisungen des virtuellen Verzeichnisses identisch sind.
Es gibt keine freigegebenen Ressourcen, die blockiert werden, soweit ich das beurteilen kann, und ich habe das getestet, indem ich den Performant-App-Pool heruntergefahren und neu gestartet habe ... slow ist immer noch langsam, und dann, wenn ich diesen App-Pool neu starte (also geladen) last) es geht noch schneller ...