您好,登錄后才能下訂單哦!
這篇文章主要介紹“ASP.NET操作與分析請求過程是什么”,在日常操作中,相信很多人在ASP.NET操作與分析請求過程是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ASP.NET操作與分析請求過程是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
netinfo.exe進程:是www服務的進程,IIS服務和ASPNET_ISAPI.DLL都寄存在此進程中。
ASPNET_ISAPI.DLL:是處理。aspx文件的win32組件。其實IIS服務器是只能識別。html文件的,當IIS服務器發現被請求的文件是。aspx文件時,IIS服務器將其交給aspnet_isapi.dll來處理。
aspnet_wp.exe進程:ASP.NET框架進程,提供。net運行的托管環境,。net的CLR(公共語言運行時)就是寄存在此進程中。
ASP.NETFramework處理一個HttpRequest的流程:
HttpRequest-->inetinfo.exe-->ASPNET_ISAPI.dll-->ASPNET_WP.exe-->HttpRuntime-->HttpApplicationFactory-->HttpApplication-->HttpModule-->HttpHandlerFactory-->HttpHandler-->HttpHandler.ProcessRequest()
ASP.NET請求處理過程是基于管道模型的,這個管道模型是由多個HttpModule和HttpHandler組成,ASP.NET把http請求依次傳遞給管道中各個HttpModule,最終被HttpHandler處理,處理完成后,再次經過管道中的HTTP模塊,把結果返回給客戶端。我們可以在每個HttpModule中都可以干預請求的處理過程。
注意:在http請求的處理過程中,只能調用一個HttpHandler,但可以調用多個HttpModule。
當請求到達HttpModule的時候,系統還沒有對這個請求真正處理,但是我們可以在這個請求傳遞到處理中心(HttpHandler)之前附加一些其它信息,或者截獲的這個請求并作一些額外的工作,也或者終止請求等。在HttpHandler處理完請求之后,我們可以再在相應的HttpModule中把請求處理的結果進行再次加工返回客戶端。
ASP.NET怎樣操作與分析請求過程
HttpModule
HTTP模塊是實現了System.Web.IhttpModule接口的類。
IHttpModule接口的聲明:
?publicinterfaceIHttpModule
?{
?voidInit(HttpApplicationcontext);
?voidDispose();
?}
Init方法:系統初始化的時候自動調用,這個方法允許HTTP模塊向HttpApplication對象中的事件注冊自己的事件處理程序。
Dispose方法:這個方法給予HTTP模塊在對象被垃圾收集之前執行清理的機會。此方法一般無需編寫代碼。
HTTP模塊可以向System.Web.HttpApplication對象注冊下面一系列事件:
AcquireRequestState當ASP.NET運行時準備好接收當前HTTP請求的對話狀態的時候引發這個事件。
AuthenticateRequest當ASP.NET運行時準備驗證用戶身份的時候引發這個事件。
AuthorizeRequest當ASP.NET運行時準備授權用戶訪問資源的時候引發這個事件。
BeginRequest當ASP.NET運行時接收到新的HTTP請求的時候引發這個事件。
Disposed當ASP.NET完成HTTP請求的處理過程時引發這個事件。
EndRequest把響應內容發送到客戶端之前引發這個事件。
Error在處理HTTP請求的過程中出現未處理異常的時候引發這個事件。
PostRequestHandlerExecute在HTTP處理程序結束執行的時候引發這個事件。
PreRequestHandlerExecute在ASP.NET開始執行HTTP請求的處理程序之前引發這個事件。在這個事件之后,ASP.NET把該請求轉發給適當的HTTP處理程序。
PreSendRequestContent在ASP.NET把響應內容發送到客戶端之前引發這個事件。這個事件允許我們在內容到達客戶端之前改變響應內容。我們可以使用這個事件給頁面輸出添加用于所有頁面的內容。例如通用菜單、頭信息或腳信息。
PreSendRequestHeaders在ASP.NET把HTTP響應頭信息發送給客戶端之前引發這個事件。在頭信息到達客戶端之前,這個事件允許我們改變它的內容。我們可以使用這個事件在頭信息中添加cookie和自定義數據。
ReleaseRequestState當ASP.NET結束所搜有的請求處理程序執行的時候引發這個事件。
ResolveRequestCache我們引發這個事件來決定是否可以使用從輸出緩沖返回的內容來結束請求。這依賴于Web應用程序的輸出緩沖時怎樣設置的。
UpdateRequestCache當ASP.NET完成了當前的HTTP請求的處理,并且輸出內容已經準備好添加給輸出緩沖的時候,引發這個事件。這依賴于Web應用程序的輸出緩沖是如何設置的。
到此,關于“ASP.NET操作與分析請求過程是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。