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
|