最近在看一个用.net2.0源码的时候,发现了一个以前没有见过的文件类型ashx,既然没见过,

那就感紧上网搜一下吧 。
 
通过从网上搜索得知,ashx是用于写web handler的,一般用来处理生成动态图片、生成动态文本等不需要回传处理的任务。早在.net1.1的时候就已经支持。
 
下面是一个ashx的示例:
 
 1<% @ webhandler language="C#" class="AverageHandler" %> 
 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的类。