it-swarm.com.de

Was verursacht einen Anwendungspool in IIS wiederverwerten?

Ich habe erfolglos nach Informationen gesucht. Der Kontext, warum ich das brauche, ist eine weitere Frage, die ich hier gestellt habe . Insbesondere führt das Erstellen/Aktualisieren/Löschen von Dateien in App_Data zu einem Pool-Recycling.

Wenn jemand eine detaillierte Liste der Ursachen für das Recycling bereitstellen könnte, wäre das großartig.

UPDATE: Da zwei Benutzer bereits aufgefallen sind, würde ich mich auch über eine Antwort freuen, in der die Gründe für das Recycling der AppDomain angegeben wurden und nicht der gesamte Pool.

67
Slavo

Zwei verschiedene Effekte - der AppPool-Prozess ist der Host für potenziell mehrere Appdomains. Typischerweise kann dies durch eine Reihe von Effekten recycelt werden, z. time - alle 'n' Stunden, fehlende Anforderungen, Speicherbedarf usw. In IIS Config Manager konfiguriert.

AppDomain - Die gehostete Instanz Ihres Anwendungsstamms kann häufiger durchlaufen werden, ohne dass andere AppDomains im AppPool beeinflusst werden. Tess 'Post zum AppDomain-Recycling ist ziemlich aufschlussreich

http://blogs.msdn.com/tess/archive/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-recycles.aspx

Sie schreiben in einen Ordner, der für die Neukompilierung überwacht wird. Dadurch wird die Appdomain-Wiederherstellung irgendwann ausgelöst.

Das Ereignisprotokoll hilft Ihnen bei der Ermittlung der Ursache, die das Recycling ausgelöst hat.

30
stephbu

Der Artikel, den Sie in dem anderen Beitrag mochten, hat das wirklich sehr gut gemacht.

Sofortiges Recycling

  • Web.config ändert sich
  • Machine.config ändert sich
  • Global.asax ändert sich
  • Bin-Verzeichnis ändert sich
  • App_Code ändert sich

Verzögertes Recycling

Kann bei mehreren Änderungen an anderen Speicherorten auftreten. Normalerweise habe ich dies nur bei Änderungen an ASPX- oder CS/VB-Dateien festgestellt. Das Hinzufügen von temporärem Text, csv oder anderen Dateien hat für mich nicht zu Problemen geführt.

ANMERKUNG: Hierbei handelt es sich ausschließlich um Wiederverwendungen von App-Domänen und nicht um tatsächliche Wiederverwendungen des Pools. Normalerweise wird der Anwendungs-POOL nur basierend auf den Einstellungen in IIS (Anzahl der Anforderungen, Speicherlimit, Leerlaufzeit oder geplanter Neustart) recycelt.

36
Mitchel Sellers

Möglicherweise möchten Sie vollständige AppPool-Recyclingereignisprotokolle aktivieren:

cscript adsutil.vbs Set w3svc/AppPools/DefaultAppPool/LogEventOnRecycle 255 

Vielleicht möchten Sie auch einen Blick auf diesen Scott Guthrie-Blogartikel werfen: http://weblogs.asp.net/scottgu/archive/2005/12/14/433194.aspx der zeigt, wie Code in Global geschrieben wird .ASAX, um die tatsächliche Ursache eines Application.End-Ereignisses zu protokollieren. 

Dies war für uns äußerst hilfreich bei der Diagnose mehrerer fehlerhafter Probleme - einer davon war zum Beispiel eine App, die Protokolldateien in das Verzeichnis wwwroot schrieb. Zu viele Änderungen an den Dateien führten zu einem Recycling.

26

Dies kann täglich aufgrund von Präferenzen geschehen oder wenn der maximale virtuelle Speicher für den Prozess überschritten wurde.

2
Ben Scheirman

Mit dieser Einstellung können Sie den App-Pool basierend auf der Anzahl der Minuten, die er ausgeführt hat, oder der Anzahl der verarbeiteten Anforderungen ändern.

Es werden auch Änderungen an web.config und anderen Dingen vorgenommen, die hier veröffentlicht wurden.

Ein IIS - Reset führt ebenso dazu wie das Beenden/Starten von Diensten.

1
Milner

w3wp.exe wurde ausgegeben. Dies führte dazu, dass Application_Start in Global.asax aufgerufen wurde. 

Um dies herauszufinden, habe ich Event Viewer geöffnet.

Unter Windows Logs ging ich zu Application .

Ich habe einen Anwendungsfehler gesehen :

Faulting application name: w3wp.exe, version: 10.0.16299.15, time stamp: 0x0aeb5595
Faulting module name: KERNELBASE.dll, version: 10.0.16299.334, time stamp: 0x6369e29f
Exception code: 0xe0434352
Fault offset: 0x0000000000014008
Faulting process id: 0x2900
Faulting application start time: 0x01d43b16f726cbb9
Faulting application path: c:\windows\system32\inetsrv\w3wp.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report Id: 998cf55d-2cd9-4b8d-9884-2110e3fd1411
Faulting package full name: 
Faulting package-relative application ID: 
0