(續)WP
接到來自
aspnet_isapi.dll
的要求後,會將要求轉送至虛擬目錄對應的
Application Domain
中的
ISAPIRuntime
物件,此物件主要功能是由
ISAPI
封包中解出資訊後轉交給
HttpRuntime
物件,在解出必要的資訊後,
ISAPIRuntime
物件接著呼叫
HttpRuntime.ProcessRequest
函式來處理使用者要求,此函式中會建立一個
HttpContext
物件,
HttpRuntime
物件會將取自
ISAPIRuntime
物件中的訪問者資訊填入該物件。由整體架構上來看,
HttpRuntime
物件管理著
HttpRuntime
與
Cache
兩個物件,而
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.asax
、
Global.dll)
在前次執行後又做了變動時。取得
HttpApplication
物件實體後,
HttpRuntime
物件緊接著呼叫
HttpApplication.ProcessRequest
函式,此函式會將執行權交至對應的
HttpHandler
物件上。
ASP.NET运行模式(2)
最新推荐文章于 2023-12-27 21:29:46 发布