ASP.NET 運行於 IIS 之上,透過 ISAPI 擴展接管動態請求。本文從 IIS 架構、ISAPI 對應、ASP.NET ISAPI 延伸(aspnet_isapi.dll)到處理序模型,完整勾勒請求從網卡到 Managed 代碼的旅程。
靜態資源(圖片、CSS、JS、HTML)由 IIS 直接讀取檔案系統並以位元組流回應。動態資源需經 ISAPI 擴展處理:IIS 依副檔名對應至特定 ISAPI DLL。例如 .asp 對應 asp.dll,.aspx 則對應 aspnet_isapi.dll。

| 副檔名 | 資源類型 |
|---|---|
| .asax | ASP.NET 應用程式檔(如 global.asax) |
| .ascx | 使用者控制項 |
| .ashx | HTTP Handler(ISAPI 擴展的 Managed 對應) |
| .asmx | ASP.NET Web Service |
| .aspx | ASP.NET 網頁 |
| .axd | 內部 HTTP Handler(如 Trace.axd、WebResource.axd) |
此外,aspnet_isapi.dll 也攔截 .config、.csproj、.resx 等敏感檔案,防止直接下載。
aspnet_isapi.dll 將請求轉交給 aspnet_wp.exe(Worker Process),單一處理序服務所有應用程式,隔離性較弱。w3wp.exe 處理序,支援多處理序隔離、回收、身分識別設定,大幅提升穩定性與安全性。aspnet_isapi.dll。aspnet_wp.exe 或 w3wp.exe)。HttpRuntime → HttpApplication → 模組/處理常式 → 頁面生命週期。processModel / 應用程式集區:maxWorkerThreads、maxIoThreads、回收條件。preCondition="integratedMode" 讓 Managed 模組參與 IIS 管線所有階段。ASP.NET Applications\Request Execution Time、Requests Queued 等效能計數器。