ASP.NET运行模式(2)

      (續)WP接到來自aspnet_isapi.dll的要求後,會將要求轉送至虛擬目錄對應的Application Domain中的ISAPIRuntime物件,此物件主要功能是由ISAPI封包中解出資訊後轉交給HttpRuntime物件,在解出必要的資訊後,ISAPIRuntime物件接著呼叫HttpRuntime.ProcessRequest函式來處理使用者要求,此函式中會建立一個HttpContext物件,HttpRuntime物件會將取自ISAPIRuntime物件中的訪問者資訊填入該物件。由整體架構上來看,HttpRuntime物件管理著HttpRuntimeCache兩個物件,而HttpContext物件則管理著一個HttpSession物件,每一個訪問者要求都對應著一個HttpContext物件,因此每一個訪問者自然就擁有獨立的HttpSession物件了。在建立HttpContext物件後,隨之被建立的是HttpApplicaton物件,此物件是經由HttpApplicationFactory物件建立的,當HttpRuntime物件向HttpApplicationFactory物件要求一個HttpApplication物件時,HttpApplicationFactory物件會先解釋目錄中的Global.asax檔案,接著載入虛擬目錄內的Application Assembly(Global.dll),而后合并兩者產生出一個Ghost Application Class,最后編譯此Class後取得物件實體後傳回至HttpRuntime物件,這個物件實體就是HttpApplication物件。解釋與編譯.asax文件的動作只發生於此虛擬目錄第一次處理使用者要求,或是Global.asaxGlobal.dll)在前次執行後又做了變動時。取得HttpApplication物件實體後,HttpRuntime物件緊接著呼叫HttpApplication.ProcessRequest函式,此函式會將執行權交至對應的HttpHandler物件上。 
展开阅读全文

没有更多推荐了,返回首页