2010-02-26 219 views

回答

70

的Global.asax文件的目的MSDN has an outline

有效地,global.asax允許您編寫響應「系統級」事件運行的代碼,例如應用程序啓動,會話結束,發生應用程序錯誤,而不必嘗試並敲入代碼插入到您網站的每一頁。

您可以通過在Visual Studio中選擇添加>新建項目>全局應用程序類來使用它。

  • 的Application_Start
  • Application_End
  • 在session_start
  • :一旦你添加的文件,你可以(至少在Visual Studio 2008和創建默認情況下),在任何列出的事件添加代碼
  • Session_End中
  • 的Application_BeginRequest
  • Application_AuthenticateRequest
  • 的Application_Error

還有其他一些事件也可以掛鉤,比如「LogRequest」。

+1

global.asax的條目已從維基百科中刪除。 – 2015-08-06 22:27:17

+0

@CathySullivan,更新,謝謝! :) – Rob 2015-08-07 07:00:12

+0

我們可以添加windows窗體的global.asax文件嗎? – 2015-10-07 05:13:11

5

Global.asax是asp.net應用程序文件。

它是一個可選文件,用於處理由ASP.NET或HttpModules引發的事件。主要用於應用程序和會話開始/結束事件以及全局錯誤處理。

使用時,應該在網站的根目錄下。

42

全球ASAX事件解釋

Application_Init:當應用程序初始化或第一次調用觸發。它針對所有HttpApplication對象實例進行調用。

Application_Disposed:就在應用程序被銷燬之前觸發。這是清理以前使用的資源的理想位置。

Application_Error:在應用程序中遇到未處理的異常時觸發。

Application_Start:當創建HttpApplication類的第一個實例時觸發。它允許您創建可由所有HttpApplication實例訪問的對象。

Application_End:當HttpApplication類的最後一個實例被銷燬時觸發。它在應用程序的生命週期中僅被觸發一次。

Application_BeginRequest:收到應用程序請求時觸發。這是針對請求觸發的第一個事件,通常是用戶輸入的頁面請求(URL)。

Application_EndRequest:爲應用程序請求觸發的最後一個事件。

Application_PreRequestHandlerExecute:在ASP.NET頁面框架開始執行事件處理程序(如頁面或Web服務)之前觸發。

Application_PostRequestHandlerExecute:當ASP.NET頁面框架完成時執行事件處理程序時觸發。

Applcation_PreSendRequestHeaders:在ASP.NET頁面框架向發出請求的客戶端(瀏覽器)發送HTTP標頭之前觸發。

Application_PreSendContent:在ASP.NET頁面框架將內容發送到請求客戶端(瀏覽器)之前觸發。

Application_AcquireRequestState:當ASP.NET頁面框架獲取與當前請求相關的當前狀態(會話狀態)時觸發。

Application_ReleaseRequestState:當ASP.NET頁面框架完成所有事件處理程序的執行時觸發。這導致所有狀態模塊保存其當前狀態數據。

Application_ResolveRequestCache:當ASP.NET頁面框架完成授權請求時觸發。它允許緩存模塊提供來自緩存的請求,從而繞過處理程序執行。

Application_UpdateRequestCache:當ASP.NET頁面框架完成處理程序執行以允許緩存模塊存儲響應以用於處理後續請求時觸發。

Application_AuthenticateRequest:當安全模塊將當前用戶的身份建立爲有效時觸發。此時,用戶的憑證已被驗證。

Application_AuthorizeRequest:當安全模塊驗證用戶可以訪問資源時觸發。

Session_Start:當新用戶訪問應用程序網站時觸發。

Session_End:當用戶的會話超時,結束或他們離開應用程序網站時觸發。

0

Web應用程序的根目錄下具有特殊的意義和特定內容可以存在於該文件夾中。 它可以有一個稱爲「Global.asax」的特殊文件。 ASP.Net框架使用global.asax中的內容並在運行時創建一個 類,該類繼承自HttpApplication。 在應用程序的生命週期中,ASP.NET維護一個由Global.asax派生的HttpApplication實例池。當一個應用程序接收到一個http請求時,ASP.Net頁面框架將分配這些實例中的一個來處理該 請求。該實例負責管理分配給它的請求的整個生命週期,實例 只有在請求完成並返回到池後才能重新使用。 Global.asax中的實例成員不能用於跨請求共享數據,但靜態成員可以。 Global.asax可以包含HttpApplication對象的事件處理程序以及一些其他重要方法,這些方法在網絡應用程序中的各個點上執行