ASP.NET 提供了 IHttpHandler 和 IHttpModule 接口,它可使您使用与在 IIS 中所用的 Internet 服务器 API (ISAPI) 编程接口同样强大的 API,而且具有更简单的编程模型。HTTP 处理程序对象与 IIS ISAPI 扩展的功能相似,而 HTTP 模块对象与 IIS ISAPI 筛选器的功能相似。
ASP.NET 将 HTTP 请求映射到 HTTP 处理程序上。每个 HTTP 处理程序都会启用应用程序内单个的 HTTP URL 处理或 URL 扩展组处理。HTTP 处理程序具有和 ISAPI 扩展相同的功能,同时具有更简单的编程模型。
HTTP 模块是处理事件的程序集。ASP.NET 包括应用程序可使用的一组 HTTP 模块。例如,ASP.NET 提供的 SessionStateModule 向应用程序提供会话状态服务。也可以创建自定义的 HTTP 模块以响应 ASP.NET 事件或用户事件。
编译、部署和注册 HTTP 处理程序
MyHandler.New
(位于 MyHandler.Fin
文件)中的 MyHandler
类和 Myhandler.dll
类上。
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="MyHandler.New"
type="MyHandler.New, MyHandlerAssembly" />
<add verb="*" path="*.myNewFileExtension"
type="MyHandler.Fin, MyHandlerAssembly" />
</httpHandlers>
<system.web>
</configuration>
<httpHandlers> 配置节中的 <add> 元素有三种属性:path、type 和 verb。详细信息,请参阅 <httpHandlers> 的 <add> 元素。
编译、注册和部署 HTTP 模块
<configuration>
<system.web>
<httpModules>
<add name="OutputCache"
type="System.Web.Caching.OutputCacheModule, System.Web,
Version=1.0.2800.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"/>
</httpModules>
<system.web>
</configuration>
详细信息,请参阅 <httpModules> 的 <add> 元素。
有关操作和注册 HTTP 处理程序和 HTTP 模块的详细信息,请参阅 MSDN Library 中有关 HTTP 处理程序或 HTTP 模块的信息。