HTTP 处理程序和工厂
2006-03-21 16:42
155 查看
HTTP 处理程序和工厂
概述
配置 HTTP 处理程序和工厂
创建自定义 HTTP 处理程序
本节小结
概述
ASP.NET 提供低级别的请求/响应 API,使开发人员能够使用 .NET 框架类为传入的 HTTP 请求提供服务。为此,开发人员需创作支持 System.Web.IHTTPHandler 接口和实现 ProcessRequest() 方法的类。当处理 HTTP 请求不需要由高级别的页框架抽象化提供的服务时,处理程序通常很有用。处理程序的常用用途包括筛选器和类似 CGI 的应用程序,尤其是那些返回二进制数据的应用程序。
ASP.NET 收到的每个传入 HTTP 请求最终由实现 IHTTPHandler 的类的特定实例来处理。IHttpHandlerFactory 提供了处理 IHttpHandler 实例 URL 请求的实际解析的结构。除了 ASP.NET 提供的默认 IHttpHandlerFactory 类外,开发人员还可以选择创建和注册工厂以支持大量的请求解析和激活方案。
配置 HTTP 处理程序和工厂
HTTP 处理程序和工厂在 ASP.NET 配置中声明为 web.config 文件的一部分。ASP.NET 定义了一个 <httphandlers> 配置节,在其中可以添加和移除处理程序和工厂。子目录继承 HttpHandlerFactory 和 HttpHandler 的设置。
例如,在全局 machine.config 文件中,ASP.NET 将所有对 aspx 文件的请求映射到 PageHandlerFactory 类:
<httphandlers> ... <add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory,System.Web" /> ... </httphandlers>
创建自定义 HTTP 处理程序
下面的示例创建一个对所有“SimpleHandler.aspx”请求进行处理的自定义 HttpHandler。
|
function doClick(index, numTabs, id) {
document.all("tab" + id, index).className = "tab";
for (var i=1; i
td.code {
padding:0,10,0,10;
border-style:solid;
border-width:1;
border-bottom:0;
border-top:0;
border-right:0;
border-color:cccccc;
background-color:ffffee
}
td.tab {
text-align:center;
font:8pt verdana;
width:15%;
padding:3,3,3,3;
border-style:solid;
border-width:1;
border-right:0;
border-color:black;
background-color:eeeeee;
cursor:hand
}
td.backtab {
text-align:center;
font: 8pt verdana;
width:15%;
padding:3,3,3,3;
border-style:solid;
border-width:1;
border-right:0;
border-color:black;
background-color:cccccc;
cursor:hand
}
td.space {
width:55%;
font: 8pt verdana;
padding:0,0,0,0;
border-style:solid;
border-bottom:0;
border-right:0;
border-width:1;
border-color:cccccc;
border-left-color:black;
background-color:white
}
public class SimpleHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.Write("Hello World!"); } public bool IsReusable { get { return true; } } } Public Class SimpleHandler : Inherits IHttpHandler Public Sub ProcessRequest(context As HttpContext) context.Response.Write("Hello World!") End Sub Public Function IsReusable() As Boolean Return(True) End Function End Class public class SimpleHandler implements IHttpHandler { public function ProcessRequest(context:HttpContext) : void { context.Response.Write("Hello World!"); } public function IsReusable() : Boolean { return true; } } | |||
C# | VB | JScript |
本节小结
HTTP 处理程序和工厂是 ASP.NET 页框架的主体。工厂将每个请求分配给一个处理程序,后者处理该请求。
在 web.config 文件中定义工厂和处理程序。子目录继承工厂的设置。
若要创建自定义处理程序,请实现 IHttpHandler 并在目录中 web.config 的 <httphandlers> 节中添加类。
相关文章推荐
- 如何:创建 HTTP 处理程序工厂
- 演练:创建和注册 HTTP 处理程序工厂
- HTTP 错误 500.21 - Internal Server Error 处理程序“PageHandlerFactory-ISAPI-4.0_32bit”在其模块
- ASP.NET中的HTTP模块和处理程序
- ASP.NET之自定义同步HTTP处理程序(图文教程)
- ASP.NET HTTP模块和处理程序(5)
- HTTP 错误 500.21 - Internal Server Error 处理程序“WebServiceHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
- HTTP 错误 500.21 - Internal Server Error 处理程序“ExtensionlessUrlHandler-ISAPI-4.0_64bit”在其模块列表中有一个错误模块“I
- HTTP 错误 500.21 - Internal Server Error 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipe
- HTTP错误 404.17 - Not Found" IIS 7.5 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理
- HTTP 处理程序和 HTTP 模块概述——附记
- 实战 HTTP 处理程序(HTTP Handler) (2) -- 向HTTP 处理程序传递参数
- svc 报“由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。“的HTTP 错误 404.3 – Not Found
- URL重写及ASP.NET路由、Http处理模块、程序等
- 实战 HTTP 处理程序(HTTP Handler) (1) -- 创建一个最简单的 HTTP Handler
- 实战HTTP处理程序系列(转)
- Errore HTTP 404.2 - Not Found" IIS 7.5 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理
- ASP.NET 3.5核心编程学习笔记(42):HTTP处理程序的编写之建立数据报表
- HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射
- Win7中IIS出现“HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。”错误(已解决)