世界軟件巨擘微軟公司提出的.Net概念給全世界的IT產業指明了新的發展方向,無論是IT業內人士、還是企業決策者,快速領會這個新概念的含義及深遠影響,都顯得非常必要。
本文就通過原理與實例講述.Net之ASP Web Application的內容,旨在帶領你快速理解其相關概念、含義及作用。全文包括:
什麼是ASP Web Application
創建Application
Application的生存期
關於多線程
文件Global.asax
Application 或 Session作用范圍內的事件
Application 或 Session作用范圍內的對象
什麼是HttpHandlers 和 FactorIEs
配置HttpHandlers 和 FactorIEs
創建自定義HttpHandler
結 語
什麼是 ASP.Net Application ?
ASP.Net這麼定義Application:它是運行在Web應用服務器上的一個虛擬目錄及其子目錄下的所有文件、頁面、模塊以及可執行代碼的總和。比如說,一個叫做"order"的application可能就是Web服務器的一個"/order"虛擬目錄。虛擬目錄可以通過Internet
Services Manager設置,它可以包含任何子目錄。
Web服務器上的每一個ASP.NET application 運行在一個獨特的.Net運行時間應用域中,它保證了類隔離(不會產生譯文或者命名沖突)、安全盒(防止對特定機器或者網絡資源的訪問)以及靜態變量的隔離。
在一個Web Application的整個生存過程中,ASP.Net維護著一個HttpApplication實例池,自動地分配這些實例中的一個以處理application接收到的每個HTTP請求。被分配的特殊HttpApplication實例負責管理整個生命期的請求,只有當請求結束時,它才能被再使用。這表示其中的用戶代碼不需用再進入。
創建Application
要創建一個ASP.Net Application,我們可以使用存在的虛擬目錄,或者創建一個新的虛擬目錄。比如,在安裝了包含IIS的Windows
2000服務器上,大概會有一個目錄C:\InetPub\WWWRoot;我們使用Internet Services Manager來配置IIS,在"Start
-> Programs -> Administrative Tools"下,用鼠標右鍵單擊存在的目錄,或者選擇new來創建一個新的虛擬目錄,或者選擇PropertIEs來提升一個存在的普通目錄為虛擬目錄。
現在看看如何觸發ASP.Net application。我們可以編寫一個simple.ASPx文件,將它放置到虛擬目錄下,然後在浏覽器中訪問它。為對照方便,我們列出了使用VB、C#以及JScript三種語言編寫的代碼:
C#
<%@Page Language="C#"%>
VB
<%@Page Language="VB"%>
JScript
<%@Page Language="JScript"%>
代碼很簡單,只是在浏覽器中打印出當前時間的信息。我們可以添加些代碼來使用Application對象,比如將對象保存為application范圍類型。通過創建一個global.asax文件,我們還可以定義各種事件處理程序,比如Application_OnStart事件觸發器。
Application的生存期 一個ASP.NET application創建於服務器第一次被請求時,在那之前不會有ASP.Net代碼在執行。接受第一次請求後,一個HttpApplication實例池被創建,並激活了Application_OnStart事件。HttpApplication實例處理這個請求及隨後發生的請求,直到最後的實例退出,接著就觸發Application_OnEnd事件。