ASP.NET 執行階段在 IIS 中採用進程內 ISAPI 擴展 + 進程外背景工作進程的雙進程架構,平衡可靠性與效能。本文詳細剖析請求從 URL 到 HTML 的完整流程。
| 組件 | 進程 | 職責 |
|---|---|---|
| inetinfo.exe (IIS) | 系統進程 | 監聽 HTTP 請求,載入 ISAPI 擴展/篩選器 |
| aspnet_isapi.dll | IIS 進程 (SYSTEM) | 接收 ASP.NET 請求,轉發給背景工作進程,監控其健康狀態 |
| aspnet_wp.exe (w3wp.exe) | 背景工作進程 | 載入 CLR,執行 Managed 代碼,管理 AppDomain、請求管線、快取、Session |
aspnet_isapi.dll。HttpRuntime 協調下,建立 HttpContext,進入 HTTP 模組管線(IHttpModule)。UrlAuthorizationModule、FormsAuthenticationModule、SessionStateModule 等模組處理。HttpHandlerFactory 解析對應的 IHttpHandler(如 Page、WebServiceHandler)。ProcessRequest,產生 HTML 輸出。machine.config 或 web.config 設定 <processModel webGarden="true" cpuMask="0xF" />。深入理解此架構,對疑難雜症排查、高效能調校、雲端部署架構設計皆有指導意義。