有沒有人知道一個網站或頁面,或知道HTTPApplication類的HTTPModule事件執行事件的執行順序?HTTPModule事件執行順序?
我發現所有事件的MSDN Documentation,但它沒有顯示過程步驟列表,我一直找不到。
有沒有人知道一個網站或頁面,或知道HTTPApplication類的HTTPModule事件執行事件的執行順序?HTTPModule事件執行順序?
我發現所有事件的MSDN Documentation,但它沒有顯示過程步驟列表,我一直找不到。
也許這有助於
http://support.microsoft.com/kb/307985/en-us/
的HttpApplication類提供了許多與模塊可以同步事件。以下事件可用於模塊在每個請求上進行同步。這些事件中列出了順序:
以下事件可用於模塊與爲每個請求傳輸同步。這些事件的順序是非確定性的。
看到這篇文章完全信息。
MSDN Library文檔:
以下是事件(粗體)等步驟在請求管道的ASP.NET 4.0:
- 驗證請求t,它檢查瀏覽器發送的信息並確定它是否包含潛在的惡意標記。
- 如果在Web.config文件的UrlMappingsSection部分中配置了任何URL,請執行URL映射。
- 提高BeginRequest事件。
- 提高AuthenticateRequest事件。
- 提高PostAuthenticateRequest事件。
- 提高AuthorizeRequest事件。
- 提高PostAuthorizeRequest事件。
- 提高ResolveRequestCache事件。
- 提高PostResolveRequestCache事件。
- [IIS 5.0/6.0]根據請求資源的文件擴展名(映射到應用程序的配置文件中),選擇一個實現IHttpHandler的類來處理請求。如果請求是針對從Page類派生的對象(頁面),並且需要編譯該頁面,則ASP.NET會在創建該頁面的實例之前編譯該頁面。 [IIS 7.0]提高MapRequestHandler事件。根據請求資源的文件擴展名選擇適當的處理程序。該處理程序可以是本機代碼模塊,如IIS 7.0 StaticFileModule或託管代碼模塊,如PageHandlerFactory類(處理.aspx文件)。
- 提高PostMapRequestHandler事件。
- 提高AcquireRequestState事件。
- 提高PostAcquireRequestState事件。
- 提高PreRequestHandlerExecute事件。
- 爲請求調用相應IHttpHandler類的ProcessRequest方法(或異步版本IHttpAsyncHandler.BeginProcessRequest)。例如,如果請求是針對頁面的,則當前頁面實例將處理該請求。
- 提高PostRequestHandlerExecute事件。
- 提高ReleaseRequestState事件。
- 提高PostReleaseRequestState事件。
- 如果定義了Filter屬性,請執行響應篩選。
- 提高UpdateRequestCache事件。
- 提高PostUpdateRequestCache事件。
- [IIS 7.0]提高LogRequest事件。
- [IIS 7.0]提高PostLogRequest事件。
- 提高EndRequest事件。
- 提高PreSendRequestHeaders事件。
- 提高PreSendRequestContent事件。
注意:僅當應用程序在IIS 7.0和.NET Framework 3.0或更高版本中以集成模式運行時,才支持MapRequestHandler,LogRequest和PostLogRequest事件。
的BeginRequest
請求已啓動。如果您需要在請求開始時執行某些操作(例如,在每頁頂部顯示廣告橫幅或進行一些變量初始化)。
AuthenticateRequest
如果你想在自己的自定義驗證方案,堵塞(例如,查找用戶對數據庫來驗證密碼,或在HTTP請求的報頭信息查詢)。
的AuthorizeRequest
此事件用於內部實現授權機制(例如,存儲在數據庫中,而不是在文件系統的訪問控制列表(ACL))。
ResolveRequestCache
此事件確定是否頁面可以從輸出緩存提供服務。如果要編寫自己的緩存模塊(例如,構建基於文件的緩存而不是內存緩存),請同步此事件以確定是否從緩存中提供頁面,否則將生成新頁面。
的AcquireRequestState
會話狀態從狀態存儲中檢索。如果你想構建你自己的狀態管理模塊,那麼請同步這個事件來從狀態存儲中獲取會話狀態。在執行HTTP處理程序之前發生
的PreRequestHandlerExecute
此事件。
PostRequestHandlerExecute
在執行HTTP處理程序之後發生此事件。
ReleaseRequestState
會話狀態存儲找回狀態商店。如果您正在構建自定義會話狀態模塊,那麼您必須將狀態存儲回狀態存儲區。
的UpdateRequestCache
此事件寫入輸出返回到輸出緩存器。
EndRequest
請求已經完成。
想要在httpmodule的PreSendRequestContent事件中調用緩存方法。問題是根據客戶需求在我的應用程序中添加了Web頁眉和頁腳,我無法緩存該內容圖像,javascript和css。目前我正在使用httpmodule的ReleaseRequestState方法。