So veranlassen Sie die Wiederverwendung einer ASP.NET-App, wenn eine OutOfMemoryException ausgelöst wird

So veranlassen Sie die Wiederverwendung einer ASP.NET-App, wenn eine OutOfMemoryException ausgelöst wird

Ich habe eine ASP.NET-App (.NET Framework 4.8), die in IIS auf Server 2019 ausgeführt wird. In den letzten Wochen ist es ein paar Mal vorgekommen, dass ein Kunde versucht hat, auf der Site eine Operation auszuführen, die einen großen Speicherblock erfordert. Die ASP.NET-Laufzeit kann einen so großen Block im Speicher nicht finden und löst eine OutOfMemoryException aus. Die Site funktioniert weiterhin, aber einige Seiten funktionieren und andere nicht. Die Integrität des IIS-Anwendungspools sieht so aus, als ob alles in Ordnung wäre, aber in Wirklichkeit funktioniert der Großteil der Site nicht, bis ich den Pool manuell wiederverwende.

Der Anwendungspool hat bereits Recycling eingestellt, wenn private Bytes über ein paar GB liegen, aber wenn man sich den w3wp-Prozess ansieht, wenn die Site nicht funktioniert, verwendet sie nur ein paar hundert MB. Gibt es eine Möglichkeit, ASP.NET oder IIS anzuweisen, zu recyceln, wenn diese Ausnahme ausgelöst wird?

Antwort1

Dies muss extern von IIS und Ihrer Anwendung überwacht und gehandhabt werden. Es gibt wahrscheinlich eine Ausnahme im Anwendungsereignisprotokoll, die eine geplante Aufgabe als Auslöser verwenden könnte, um den Anwendungspool über die Befehlszeile zu stoppen/starten.

Dies scheint auch eine ziemlich einfache Garbage Collection-Einstellung zu sein. Zumindest sollten alle Anwendungen für die Server-GC konfiguriert sein.

Darüber hinaus gibt es wahrscheinlich Code, der hinzugefügt werden kann, um eine ordnungsgemäße Integritätsprüfung zu ermöglichen. Es ist seit Jahren Standardverfahren, dass eine Integritätsprüfung des Lastenausgleichs eine Seite verwendet, die die Verwendung des .NET Frameworks erzwingt. Diese Integritätsprüfung muss fehlschlagen, wenn der Anwendungspool aufgrund einer Ausnahme wegen unzureichendem Arbeitsspeicher abgestürzt ist.

verwandte Informationen