ASP.NET 運行於 HttpRuntime,但 CLR 如何進入?本章透過 .NET 4 原始碼追蹤關鍵步驟。
CLR 初始化載入 AppManagerAppDomainFactory,實作 IAppManagerAppDomainFactory(COM 可呼叫的 Create 方法)。建構子取得 ApplicationManager 單例並呼叫 Open()。
Create 方法核心三行:
ISAPIApplicationHost appHost = new ISAPIApplicationHost(appId, appPath, false); ISAPIRuntime isapiRuntime = (ISAPIRuntime)_appManager.CreateObjectInternal(appId, typeof(ISAPIRuntime), appHost, false, null); isapiRuntime.StartProcessing();
建立應用程式宿主、在應用程式管理器中建立 ISAPIRuntime 實例、啟動處理。這是從 IIS 非託管環境進入 ASP.NET 託管運行時的起點。