Stellen Sie sich eine ASP.NET-Anwendung mit einem Speicherverlustproblem im Verbindungspool vor (wo zum Beispiel Verbindungen nicht ordnungsgemäß geschlossen werden).IIS-Anwendungspool und .NET-Garbage Collection
Wird der Verbindungspool durch das Recyceln des Anwendungspools gelöscht (wodurch mehr Verbindungen hergestellt werden können)?
Wenn die Verbindungen so lange im Speicher verbleiben, bis der Garbage Collector sie entfernt, geschieht dies, wenn der Anwendungspool neu gestartet wird (oder bleibt/bleibt)? Ich verstehe auch, dass der Garbage Collector sie jederzeit bereinigen kann, aber sind sie immer noch in Verwendung und können nicht gesammelt werden, bis ein Reset oder ein Anwendungspool neu gestartet wird?
Ich überprüfe ein System, bei dem das Endziel offensichtlich darin besteht, den Code korrigieren zu lassen, um die Verbindungen korrekt zu verwalten, und ich versuche mehr Verständnis für den Garbage-Collection-/Application-Pool-Prozess zu erlangen.
Glück für mich, ich werde nicht derjenige sein, der die Fixierung tun muss! das eigentliche Problem ist die übermäßige Verwendung von Datenreadern in der Anwendung ... es gibt keine try/catch/finally-Blöcke, wenn also ein Fehler auftritt, wenn der dispose-Code nie ausgeführt wird und die Verbindungen aufgebraucht sind ... – davidsleeps
So klang es ... es ist lustig/traurig, wie sich die gleichen Fehler immer wieder zeigen. –