.NET之ASP WEBAPPLICATION快速入门(4)
你当前的位置:烁空 --> 技术文档全集
.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>