您的位置:首页 > 理论基础 > 计算机网络

如何:创建同步 HTTP 处理程序

2006-03-31 15:46 615 查看
本主题阐释一个 HTTP 处理程序的代码,该处理程序对 ASP.NET 应用程序中其 URL 以 .sample 结尾的资源执行同步请求处理。此代码示例阐释了下列内容:

一个 HTTP 处理程序类的代码。该类必须实现 ProcessRequest 方法和 IsReusable 属性。

Web.config 文件中注册该处理程序并将 .sample 文件扩展名映射到该处理程序所需的元素。

如何在 Internet 信息服务 (IIS) 中将 .sample 文件扩展名映射到 ASP.NET。


注意
在将配置文件更改为包含对新处理程序的引用后,ASP.NET Development Server 将处理对新资源的请求。若要启用 IIS 以处理该请求,请参见下面的过程。

当用户请求一个其 URL 以 .sample 结尾的资源时,Web 服务器将该请求转发给 ASP.NET。然后 ASP.NET 调用 HTTP 处理程序,后者返回一个响应。该响应由该处理程序动态创建;不需要存在具有文件扩展名 .sample 的文件。有关 ASP.NET 如何与 Web 服务器交互的更多信息,请参见 ASP.NET 生命周期

创建自定义 HelloWorldHandler HTTP 处理程序类

在网站的 App_Code 目录中,创建一个名为
HelloWorldHandler
的类。

向类文件中添加下面的代码。

using System.Web;
public class HelloWorldHandler : IHttpHandler
{
public HelloWorldHandler()
{
}
public void ProcessRequest(HttpContext context)
{
HttpRequest Request = context.Request;
HttpResponse Response = context.Response;
// This handler is called whenever a file ending
// in .sample is requested. A file with that extension
// does not need to exist.
Response.Write("<html>");
Response.Write("<body>");
Response.Write("<h1>Hello from a synchronous custom HTTP handler.</h1>");
Response.Write("</body>");
Response.Write("</html>");
}
public bool IsReusable
{
// To enable pooling, return true here.
// This keeps the handler in memory.
get { return false; }
}
}

这段代码实现 ProcessRequest 方法并将一个字符串写出到当前 HttpContext 对象的 Response 属性中。

注册自定义 HTTP 处理程序

创建完自定义 HTTP 处理程序类后,必须在应用程序的 Web.config 文件中注册它。这样,ASP.NET 在接收对其 URL 以 .sample 结尾的资源进行的请求时,可以找到该处理程序。

在 Web.config 文件中注册自定义 HTTP 处理程序

将一个 Web.config 文件添加到网站(如果该文件尚未存在)。

将下面突出显示的元素添加到 Web.config 文件中。



复制到剪贴板

<configuration>
<system.web>
<httpHandlers>            <add verb="*" path="*.sample"                   type="HelloWorldHandler"/>        </httpHandlers>
</system.web>
</configuration>


这段代码按类名注册自定义处理程序,并将 .sample 文件扩展名映射到该处理程序。

在 IIS 6.0 中配置 HTTP 处理程序扩展名

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: