ASP.NET生命週期詳解(轉)

看到好文章須要分享。html

最近一直在學習ASP.NET MVC的生命週期,發現ASP.NET MVC是創建在ASP.NET Framework基礎之上的,因此原來對於ASP.NET WebForm中的不少處理流程,如管道事件等,對於ASP.NET MVC一樣適用。只是MVC URLRouting Module對進入到server的request進行了攔截,而後對這次request的handler進行了特殊的處理。總結來講,就是ASP.NET管道是全部ASP.NET Web Applicaiton,包括WebForm, MVC,是這二者的基礎,這二者的不一樣,是在於最終使用的IHttpHandler的不一樣。WebForm中的使用的是Page這個Handler,MVC中使用的是MVCHander.windows

首先詳細瞭解一下ASP.NET的生命週期,下面三張圖很是詳細,轉自用三張圖片詳解Asp.Net 全生命週期服務器

 

說明:post

1  第一張圖片從全局說明從客戶端發出一個Request請求,服務器windows內核中的HTTP.SYS組件接收該請求開始到IIS處理完該請求並響應到客戶端結束。學習

2  第二張圖片爲圖1中Http處理管線的詳細步驟ui

3  第三張圖片爲圖2Http處理管線中調用處理程序(HttpHandler,  此處爲Page對象)的詳細生命週期過程。.net

 

 

圖1:orm


 

 

 

圖2:  Http處理管線詳解server


 

圖3:  Asp.Net生命週期詳解(WebForm的狀況)htm


 

 
 
我的補充:這三張圖結合原來的一篇文章 ASP.NET MVC 流程概述簡單的講一下MVC的攔截原理。
經過流程概述這篇文章中的代碼,而且結合本文中第一張圖分析,URLRouting Moudule在PostResolveRequestCache的時候對請求進行了攔截,而且進行相應的路由分析。PostMapRequestHandler的時候完成的是本次請求的Handler的建立。注意,這裏都是一些預處理,意識就是說,把之後真正要用到的Http Handler先放入到HttpContext中,此時並無調用ProcessRequest方法。PostMapRequestHandler完成後還要繼續其餘的管道事件,如AquireRequestState等,真正執行Handler的Process Request方法是在PostRequestHandlerExecute. 最終會按照順序走完管道中的每個事件。
轉自:http://blog.csdn.net/sundacheng1989/article/details/10468393
相關文章
相關標籤/搜索