【圖解ASP.NET MVC運行機制理解-簡易版】
很多盆友咨詢ASP.NET MVC的機制。網上也有好多。但是都是相當深奧。看的雲里霧里的。我今天抽空,整理個簡易版本。把處理流程走一遍。
當然,這個只是處理請求的一部分環節。百度的面試題“客戶端從瀏覽器發送一個請求,要經過哪些路程。。。”看似簡單的問題,問的很有深度。

我們不關注 從客戶端HTTP->TCP->DNS->Server->Application->..................Client 這個完整的路線和插曲。我們就看看程序那一塊。
我這說的是ASP.NET MVC的Web程序,其它的請繞行哈.
IIS 6 7 8的變化,自行找資料。不影響ASP.NET 的處理機制。
開始步驟:
1.服務器監聽TCP請求處理,轉發給IIS.........
1.
1-2

2. IIS 接受到請求后,發送給Web程序。

3.Web程序在啟動的時候,觸發一系列的事件。

4.請找些資料 理解上面的管道模型 ,理解 HttpModule 、HttpHandler。Web程序啟動的時候,事件注冊順序表,來自MSDN。

5 .穿過注冊的Module后,才進入對應的 Handler 進行請求處理。MVC在配置文件中,加載注冊了路由模塊。

7.在程序啟動的時候,觸發注冊模塊的 Init 方法。

8.此方法為 HttpApplication 的事件 PostResolveRequestCache 注冊了處理程序 。在觸發此事件的時候,進行了請求的路由檢測。路由數據,RouteTable是當前應用程序域-AppDomain下的一個單例模式的事例。實現在應用程序級別的路由數據共享。


9. 在應用程序啟動的時候,使用單例的路由表 RouteTable對象,進行路由注冊的注冊配置。
好了。路由數據已經准備初始化完畢,各項處理事件也注冊完畢。當請求進入當前程序時候,進入管道模型,最終到達處理程序Handler,將生成的響應數據返回。
----------------------------------關於管道模型的設計-------------------------------------
附加:

參考文獻:深入理解ASP.NET的內部運行機制
https://msdn.microsoft.com/en-us/library/system.web.httpapplication(v=vs.80).aspx
