2012-04-02 11 views
0

Ich habe eine große Web-App, die auf unseren beiden Live-Servern läuft. Ein Teil unseres serverseitigen C# -Codes ruft eine Drittanbieter-App auf, um eine Aufgabe für uns zu erledigen.So diagnostizieren Sie App-Pool-Probleme

Diese Aufgabe funktioniert meistens, aber an einem bestimmten Punkt hört sie auf zu arbeiten, bis der AppPool recycelt wird.

Das alles geschieht in w3wp.exe, so kann ich sehen, daß es in Prozessmonitor wie folgt ausgeführt wird (wenn es nicht funktioniert),

Thread Create 
Access the file PreviewGenerator.exe 
Hive unloaded (this is the registry) 
Thread Exit 

Und wie dieses, wenn es funktioniert,

Thread Create 
Access the file PreviewGenerator.exe 
Process Start 
Does heaps of stuff with PreviewGenerator.exe including reading/writing/registry, etc. 
Process Exit 
Hive unloaded 
Thread Exit 

Wie kann ich debuggen, was in meinem AppPool passiert und warum das Starten eines separaten Prozesses manchmal nicht funktioniert?

Antwort

0

Ich fand das Beste, was zu tun war, um einen separaten App-Pool für meine Anwendung in IIS zu erstellen und eine obere Grenze für die Menge an RAM, die es verwenden könnte. Außerdem fand ich es nützlich, die Einträge "Recycle Event Log Entry" unter den App-Pool-Einstellungen zu aktivieren.

Sie können dann zum Systemereignisprotokoll gehen und die Elemente mit einer Quelle von 'WAS' herausfiltern, um zu verstehen, was in den App-Pools passiert, wann sie neu gestartet werden und wann sie aufhören, im Leerlauf zu sein usw.

Ich denke, das Hauptproblem in unserem Fall ist, dass die IIS-Box nicht mehr genügend Arbeitsspeicher hatte. Das Anpassen der App-Pools und Hinzufügen von zusätzlichem RAM scheint das Problem gelöst zu haben.

Verwandte Themen