2010-05-12 12 views
6

Wann zu verwenden und nicht global.asax-Datei in asp.net-Anwendung verwenden? Ich habe gehört, dass du diese Datei nur zur Not benutzen solltest.ASP.NET global.asax Verwendung

+0

Wo haben Sie das gehört? Und was war die Begründung? – Codesleuth

+0

Ich erinnere mich nicht genau, aber ich habe gehört, dass jemand das gesagt hat. – Azat

Antwort

6

Die Global.asax Datei wird verwendet, Anwendung und Sitzungsebene Ereignisse, wie zu implementieren:

Application_Init - ausgelöst, wenn eine Anwendung

Application_Start initialisiert zunächst - ausgelöst, wenn die Anwendung zum ersten Mal

Application_End beginnt - Das letzte Ereignis wird ausgelöst, wenn die Anwendung beendet oder das Zeitlimit überschritten wird.

Session_Start - Wird ausgelöst, wenn die Sitzung eines Benutzers das erste Mal gestartet wird

Application_BeginRequest - mit jeder neuen Anfrage

Application_EndRequest gefeuert - ausgelöst, wenn die Anwendung

Application_AuthenticateRequest endet - das Ereignis zeigt an, dass eine Anforderung authentifiziert zu werden bereit ist.

Application_Error - ausgelöst, wenn ein nicht behandelter Fehler auftritt, innerhalb der Anwendung

Session_End - gefeuert, wenn ein einzelner Benutzer Session oder eine Zeitüberschreitung beendet.

Die Implementierung dieser Handler kann eine legitime Verwendung von global.asax sein. Beispielsweise protokolliert der Ereignishandler Application_Error in der Regel alle globalen Fehler, und der Ereignishandler Application_End enthält normalerweise die Anwendungsbereinigungslogik. Dies sind gute Anwendungen des Global.asax. Verwenden Sie sie bei Bedarf und haben Sie keine Angst, wenn die Datei wächst.

Ich habe jedoch Fälle gesehen, in denen Entwickler der global.asax alle möglichen globalen Methoden hinzugefügt haben, die in der Tat nicht gerechtfertigt sind. Beispiel: Sie sollten die Geschäftslogik für ein bestimmtes Domänenobjekt im Objekt selbst und nicht in der Datei global.asax beibehalten. Wenn Sie Methoden in der Global.asax finden, die nicht dort sein sollten, refaktorieren Sie die Arbeit am richtigen Ort.

1

global.asax ist ein HTTPModul. Alle Anforderungen durchlaufen die Module global.asax und andere Module, bevor sie Ihre Seitenhandler erreichen. Verwenden Sie dies, um bestimmte Aufgaben auf Ihre Anfrage oder Antwort, wie URL-Routing, globale Fehler Handlign etc.

0

Wenn Sie etwas Besonderes passieren auf Application Start/Ende oder Session Start/Ende, oder global behandeln Ausnahmen können Sie verwenden um die Ereignisse in den Lebenszyklen Apllication und Session abzubilden.

Verwandte Themen