.NET之ASP WEB APPLICATION快速入门(4) 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" />
...
</HTTPHANDLERS>
|