Application 或 Session作用范圍內的對象
在Global.asax文件中,我們可以通過object標記定義靜態對象,這些對 象可以是.NET框架類,也可以是經典的COM組件。其作用范圍可以是 appinstance、session或者application中的任一種。如果一個對象的 作用范圍是Appinstance,就表示這個對象明確屬于HttpApplication的 一個實例,并且不被共享。
請看下面定義對象作用范圍的例子:
<object id="id" runat="server" class=".NET Framework class Name" scope="appinstance">
<object id="id" runat="server" progid="Classic COM ProgID" scope="session"/>
<object id="id" runat="server" classid="Classic COM ClassID" scope="application"/>
什么是HttpHandlers 和 factories(Http處理器和工廠)
ASP.NET提供了一套低級別的請求/響應API,利用它們我們就可以使 用.NET框架類服務于輸入的HTTP請求,它們就是HTTPHandlers 和Factories。HTTPHandlers 和Factories可以說是ASP.NET框架的中 樞。Factories(工廠)將每個請求分配給一個handler(處理器),由 這個處理器再負責處理請求。具體實現步驟就是創建支持 System.Web.IHTTPHandler接口的類,并執行ProcessRequest()方法。 當不要求高級別頁面框架提取的服務處理HTTP請求時,處理器經常很有用 途。處理器的一般用途包括過濾器和仿CGI應用,特別是那些返回二進制 數據的應用。
ASP.NET接收的每一個HTTP輸入請求最終被一個特殊的類實例 IHTTPHandler所處理,IhttpHandlerFactory提供了處理器到 IHTTPHandler實例的基礎下部組織。ASP.NET自帶3個標準的 IhttpHandlerFactory類: PageHandlerFactory,RestrictedResourceFactory和 WebServiceHandlerFactory。我們還可以有選擇的創建并注冊附加 factories(工廠)以支持更豐富的請求決定和激活場合。
配置HttpHandlers 和 Factories
HTTPHandlers 和factories 作為config.web文件的一部分進行配置。 ASP.NET定義了一個"httphandlers"配置節,在這里可以添加和刪除 HTTPHandlers和factories。這些配置信息可以通過子目錄而繼承下來。
比如,下面這些代碼位于config.web文件的頭部,目的就是映射所有關 于.aspx文件的請求到PageHandlerFactory類:
<httphandlers>
...
<add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory" />
...
</httphandler
|