最近在看一个用.net2.0源码的时候,发现了一个以前没有见过的文件类型ashx,既然没见过,
2using System;
3using System.Web;
4public class AverageHandler : IHttpHandler
5{
6 public bool IsReusable
7 {
8 get
9 {
10 return true;
11 }
12 }
13
14 public void ProcessRequest(HttpContext ctx)
15 {
16 ctx.Response.Write("hello");
17 }
18}
19
注:IsReusable 属性是必须的
通常我们在使用HttpHandler时会选择在Web.Config文件中配置以拦截特定请求并指向相应的实现了IHttpHandler接口的类,但是我们还有另外一种更加简单的方式,那就是使用.ashx文件来实现。
新建一个以.ashx为后缀的文本文件,假设命名为"mytest.ashx",然后在这个文件里面加入:
<%@ WebHandler Language="C#" Class="class type"%>
这里的class type必须是实现了IHttpHandler接口的类型,比如:
<%@ WebHandler Language="C#" Class="MyLibrary.MyClass"%>
这样的话,我们就可以通过对mytest.ashx的请求,比如 http://localhost/mytest.ashx,来访问MyClass这个实现了IHttpHandler的类。