___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ answer6698950 ___

Ja.

HttpModule sind per HttpApplication. Im Gegensatz zu dem Namensvorschlag wird die Application_End-Methode in global.asax am Ende der Lebensdauer jedes HttpApplicatons NICHT ausgelöst. Es wird am Ende der Lebensdauer aller HttpApplications in der aktuellen AppDomain ausgelöst (wenn die AppDomain abgerissen wird). Dasselbe gilt für die Methode Application_Start.

    
Frage zu IHttpModule.Dispose und Application_End ___ answer6700700 ___

Es gibt immer nur eine Instanz des Anwendungsobjekts pro Anwendung. Es gibt viele Session-Objekte, die sich jeweils mit Anfragen befassen oder darauf warten, recycelt zu werden.

Der App-Pool wird nicht voll von App-Objekten, da es nur 1 pro Anwendung gibt. Wenn ein App-Pool mehr als eine App hostet, wird es viele geben, und der Pool wird durch das Recyclen des Pools gelöscht. App-Pools verfügen auch über eine Zustandsüberwachung, die den Prozess nach einer bestimmten Anzahl von Anforderungen / Speicherauslastung neu startet. In diesem Fall bleiben bestehende Sitzungen zum Sterben, während eine neue App gestartet wird, um neue Anfragen zu bearbeiten. Wenn alle Sitzungen in der alten App beendet sind, wird die App gelöscht.

Weitere Informationen finden Sie unter MSDN .

    
___ tag123iis7 ___ IIS (Internetinformationsdienste) Version 7 - ist eine Webserveranwendung und eine Reihe von Funktionserweiterungsmodulen, die von Microsoft zur Verwendung mit Microsoft Windows erstellt wurden. Veröffentlicht mit Windows Server 2008 und Windows Vista. ___ tag123iis ___ Internetinformationsdienste (IIS) ist ein Webserver, der von Microsoft für die Verwendung mit Microsoft Windows erstellt wurde. Bitte geben Sie an, welche Version von IIS Sie entweder in Ihrer Frage ausführen oder indem Sie ein versionsspezifisches Tag hinzufügen. ___ tag123aspnet ___ ASP.NET ist ein Framework für die Entwicklung von Microsoft-Webanwendungen, mit dem Programmierer dynamische Websites, Webanwendungen und Webdienste erstellen können. Es ist nützlich, dieses Tag in Verbindung mit dem Typ des Projekttyps zu verwenden, z. [asp.net-mvc], [asp.net-webforms] oder [asp.net-web-api]. Verwenden Sie dieses Tag NICHT für Fragen zu ASP.NET Core - verwenden Sie stattdessen [asp.net-core]. ___ qstntxt ___

Ich habe gerade diesen Beitrag gelesen "Wann ist die IHttpModule.Dispose-Methode gerufen? " Ich fand das

  

"Die Dispose-Methode führt vor der Entfernung eine abschließende Bereinigung durch   des Moduls aus der Ausführungspipeline. "

     

was bedeuten würde, dass es anwendungsweit ist.

     

Es ist in Ordnung. Jedenfalls habe ich selbst herausgefunden, dass ich das benutzt habe   IHttpModule Dispose-Methode und ein Ereignishandler für die   Application.Disposed-Ereignis sollte kaum das gleiche sein. Der erste tritt auf   direkt nach dem zweiten.

Ich glaube nicht, dass dies zu 100% korrekt ist, d. h. auf "IHttpModule.Dispose" folgt nicht immer "Application_End". Angenommen, ich habe mehrere Instanzen des Anwendungsobjekts für meine Anwendung ausgeführt, was bedeutet, dass jede Instanz des Anwendungsobjekts einzelne Instanzen von Modulen enthält. Nehmen wir an, es kommt ein Zeitpunkt, an dem der Anwendungspool voll mit Anwendungsinstanzen wird. Was wird dann passieren? Werden die Anwendungsinstanzen nicht einzeln nacheinander verteilt, und in der Kette werden die Module innerhalb der Anwendungsinstanz entsorgt. Jetzt bedeutet diese Entsorgung des Moduls nicht, dass Application_End danach zündet. Die Anwendung läuft noch. Habe ich recht?

    
___

9

Ich habe gerade diesen Beitrag gelesen "Wann ist die IHttpModule.Dispose-Methode gerufen? " Ich fand das

  

"Die Dispose-Methode führt vor der Entfernung eine abschließende Bereinigung durch   des Moduls aus der Ausführungspipeline. "

     

was bedeuten würde, dass es anwendungsweit ist.

     

Es ist in Ordnung. Jedenfalls habe ich selbst herausgefunden, dass ich das benutzt habe   IHttpModule Dispose-Methode und ein Ereignishandler für die   Application.Disposed-Ereignis sollte kaum das gleiche sein. Der erste tritt auf   direkt nach dem zweiten.

Ich glaube nicht, dass dies zu 100% korrekt ist, d. h. auf "IHttpModule.Dispose" folgt nicht immer "Application_End". Angenommen, ich habe mehrere Instanzen des Anwendungsobjekts für meine Anwendung ausgeführt, was bedeutet, dass jede Instanz des Anwendungsobjekts einzelne Instanzen von Modulen enthält. Nehmen wir an, es kommt ein Zeitpunkt, an dem der Anwendungspool voll mit Anwendungsinstanzen wird. Was wird dann passieren? Werden die Anwendungsinstanzen nicht einzeln nacheinander verteilt, und in der Kette werden die Module innerhalb der Anwendungsinstanz entsorgt. Jetzt bedeutet diese Entsorgung des Moduls nicht, dass Application_End danach zündet. Die Anwendung läuft noch. Habe ich recht?

    
Rocky Singh 14.07.2011, 19:20
quelle

2 Antworten

9

Ja.

HttpModule sind per HttpApplication. Im Gegensatz zu dem Namensvorschlag wird die Application_End-Methode in global.asax am Ende der Lebensdauer jedes HttpApplicatons NICHT ausgelöst. Es wird am Ende der Lebensdauer aller HttpApplications in der aktuellen AppDomain ausgelöst (wenn die AppDomain abgerissen wird). Dasselbe gilt für die Methode Application_Start.

    
Frage zu IHttpModule.Dispose und Application_End
Jeff 14.07.2011, 19:35
quelle
0

Es gibt immer nur eine Instanz des Anwendungsobjekts pro Anwendung. Es gibt viele Session-Objekte, die sich jeweils mit Anfragen befassen oder darauf warten, recycelt zu werden.

Der App-Pool wird nicht voll von App-Objekten, da es nur 1 pro Anwendung gibt. Wenn ein App-Pool mehr als eine App hostet, wird es viele geben, und der Pool wird durch das Recyclen des Pools gelöscht. App-Pools verfügen auch über eine Zustandsüberwachung, die den Prozess nach einer bestimmten Anzahl von Anforderungen / Speicherauslastung neu startet. In diesem Fall bleiben bestehende Sitzungen zum Sterben, während eine neue App gestartet wird, um neue Anfragen zu bearbeiten. Wenn alle Sitzungen in der alten App beendet sind, wird die App gelöscht.

Weitere Informationen finden Sie unter MSDN .

    
Simon Halsey 14.07.2011 22:27
quelle

Tags und Links