首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET MVC 生命週期

     編輯:關於ASP.NET

ASP.NET MVC 在管線中的攔截時機與處理流程

核心問題

  1. HTTP 請求從 IIS 移交 ASP.NET 執行期後,MVC 在**何時**獲得控制權?
  2. 處理流程為何?

IIS 7 管線關鍵事件(MSDN 圖示)

IIS 7 ASP.NET 應用程式生命週期

關鍵發現:UrlRoutingModule 掛載點

<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

反編譯 UrlRoutingModule.Init:

protected virtual void Init(HttpApplication application)
{
    application.PostResolveRequestCache += OnApplicationPostResolveRequestCache;
    application.PostMapRequestHandler += OnApplicationPostMapRequestHandler;
}

兩個攔截時機

  1. PostResolveRequestCache: 授權完成、快取模組即將服務請求前。MVC 於此檢查路由表,若匹配則建立 MvcHandler 並設為 HttpContext.Handler,繞過傳統頁面處理。
  2. PostMapRequestHandler: 處理常式已確定後。作為備援確保路由正確解析。

結論:MVC 在 PostResolveRequestCache** 階段介入管線,透過 **UrlRoutingModule** 將符合路由的請求轉交 **MvcHandler** 處理,啟動 Controller 執行流程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved