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


看到好文章需要分享。

最近一直在學習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.

首先詳細了解一下ASP.NET的生命周期,下面三張圖非常詳細,轉自用三張圖片詳解Asp.Net 全生命周期

 

說明:

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

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

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

 

 

圖1:


 

 

 

圖2:  Http處理管線詳解


 

圖3:  Asp.Net生命周期詳解(WebForm的情況)


 

 
 
個人補充:這三張圖結合原來的一篇文章 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
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM