1. 程式人生 > >global.asax檔案的作用

global.asax檔案的作用

1、Global.asax 檔案(也稱為 ASP.NET 應用程式檔案)是一個可選的檔案,該檔案包含響應 
ASP.NET 或HTTP模組所引發的應用程式級別和會話級別事件的程式碼
2、Global.asax 檔案駐留在 ASP.NET 應用程式的根目錄中。執行時,分析 Global.asax 並將其編譯到一個動態生成的 
   .NET Framework 類,該類是從HttpApplication基類派生的。配置 ASP.NET,以便自動拒絕對 Global.asax 檔案的任何直接的 URL 請求;
   外部使用者不能下載或檢視其中的程式碼。Global.asax 檔案是可選的。只在希望處理應用程式事件或會話事件時,才應建立它
3、Global.asax檔案主要用來處理更高級別的應用程式事件,如Application_Start、Application_End、Session_Start、Session_End等。
   開發人員使用位於特定Web應用程式根目錄下的Global.asax檔案來創作此邏輯。第一次啟用或請求應用程式名稱空間內的任何資源或URL時,
   ASP.NET會將其Global.asax檔案編譯為從HttpApplication類派生而來的一個類
4、global.asax的方法介紹

Application_Init:在每一個HttpApplication例項初始化的時候執行
  Application_Disposed:在每一個HttpApplication例項被銷燬之前執行
  Application_Error:所有沒有處理的錯誤都會導致這個方法的執行
  //在程式初始化的時候執行。在Web應用程式的生命週期裡就執行一次
  //這裡只能放一些公用的資訊,比如HttpApplicationState
  Application_Start:
  Application_End:應用程式結束時,在最後一個HttpApplication銷燬之後執行
  Application_BeginRequest:BeginRequest是在收到Request時第一個觸發的事件,這個方法第一個執行
Application_AuthenticateRequest:當安全模組已經建立了當前使用者的標識後執行
Application_AuthorizeRequest:當安全模組已經驗證了當前使用者的授權時執行
//當ASP.NET完成授權事件以使快取模組從快取中為請求提供服務時發生,從而跳過處理程式(頁面或者是WebService)的執行
//這樣做可以改善網站的效能,這個事件還可以用來判斷正文是不是從Cache中得到的
Application_ResolveRequestCache:
Application_AcquireRequestState:當ASP.NET獲取當前請求所關聯的當前狀態(如Session)時執行
Application_PreRequestHandlerExecute:當ASP.Net即將把請求傳送到處理程式物件(頁面或者是WebService)之前執行。這個時候,Session就可以用了
Application_PostRequestHandlerExecute:當處理程式物件工作完成後執行
Application_ReleaseRequestState:在ASP.NET執行完所有請求處理程式後執行。ReleaseRequestState事件將使當前狀態資料被儲存
Application_UpdateRequestCache:在ASP.NET執行完處理程式後為了後續的請求而更新響應快取時執行
Application_EndRequest:同上,EndRequest是在響應Request時最後一個觸發的事件,這個方法自然就是最後一個執行的了
Application_PreSendRequestHeaders:向客戶端傳送Http標頭之前執行
Application_PreSendRequestContent:向客戶端傳送Http正文之前執行
  Session_Start:會話開始時執行
  Session_End:會話結束或過期時執行
5、Request相應的事件執行順序:
BeginRequest 
AuthenticateRequest 
AuthorizeRequest
ResolveRequestCache
AcquireRequestState 
PreRequestHandlerExecute
PostRequestHandlerExecute
ReleaseRequestState
UpdateRequestCache
EndRequest