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

MVC 系列(1):HTTP 請求如何進入 CLR

     編輯:關於ASP.NET

本系列整理自 2012 年閱讀 MVC 3 原始碼,涵蓋從 HTTP 請求進入 MVC Handler 前的完整流程。本文講解伺服器接收請求後如何進入 .NET CLR。

IIS 5 處理流程

IIS 5 核心進程為 InetInfo.exe,所有請求(ASPX/HTML)均由其處理。ASPX 對應 aspnet_isapi.dll,該 DLL 建立 aspnet_wp Worker Process 並載入 CLR,形成託管環境。特點:

  • 單一 aspnet_wp 處理所有應用程式,但透過 AppDomain 隔離(每站點/虛擬目錄一個),擁有獨立 Context,安全無虞。
  • aspnet_isapi 監控 Worker Process 效能,低於閾值則回收重建。
  • ISAPI 與 Worker Process 透過 Named Pipe 非同步通訊,效能最佳化。

IIS 6 處理流程

IIS 6 採用 w3wp.exe Worker Process,架構更模組化:http.sys(核心模式)接收請求 → 依 URL 導向應用程式集區 → 集區佇列 → 對應 w3wp.exe → 載入 aspnet_isapi.dll → 載入 CLR → 建立 AppDomain → ISAPIRuntime.ProcessRequest 進入管線。關鍵元件:

  • HTTP.SYS:核心監聽器,負責請求路由、回應緩存。
  • Application Pool:隔離進程單位,可對應網站/虛擬目錄。
  • Worker Process (w3wp.exe):非託管宿主,載入 ISAPI 擴充與 CLR。
  • WAS (Web Admin Service):監控集區與進程健康。

IIS 7 整合模式進一步將 ASP.NET 管線融入 IIS 核心,但核心概念延續。理解這些底層機制,有助於深入掌握 ASP.NET 請求處理全貌。

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