ASP.NET 不僅是 WebForms 與 WebServices 的宿主,更是一個完全由受控代碼構建的請求處理引擎。它接收傳入請求,透過內部管線傳遞至終點,開發者可在管線各階段掛載自定義邏輯處理請求。這個引擎與 HTTP/Web 伺服器完全分離,事實上 HTTP 執行階段是一個元件,讓你能擺脫 IIS,將 ASP.NET 執行階段寄宿於 Windows Forms、主控台應用程式甚至自訂伺服器中。
ASP.NET 在微軟平台上透過 ISAPI 擴展 與 IIS 交互。aspnet_isapi.dll 寄宿 .NET 執行階段與 ASP.NET 執行階段,負責從 Web 伺服器獲取請求並發送回應。非受控 ISAPI 代碼透過定義良好的介面 (HttpRequest、HttpResponse) 將非受控資料暴露給受控世界。
雖然日常開發不一定需要這些知識,但理解請求如何在管線中流轉,能幫助你:
ASP.NET 最令人印象深刻的是其深思熟慮的設計——既易於使用,又能掛接到請求處理的幾乎所有部分,這正是 .NET 框架構建複雜高效框架能力的最佳證明。