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

那就感紧上网搜一下吧 。
 
通过从网上搜索得知,ashx是用于写web handler的,一般用来处理生成动态图片、生成动态文本等不需要回传处理的任务。早在.net1.1的时候就已经支持。
 
下面是一个ashx的示例:
 
 1浅谈ashx文件_动态图片<% @ webhandler language="C#" class="AverageHandler" %> 
 2浅谈ashx文件_动态图片using System;
 3浅谈ashx文件_动态图片using System.Web;
 4浅谈ashx文件_动态图片public class AverageHandler : IHttpHandler
 5浅谈ashx文件_c#_05浅谈ashx文件_搜索_06浅谈ashx文件_搜索_07{
 6浅谈ashx文件_c#_08    public bool IsReusable
 7浅谈ashx文件_c#_09浅谈ashx文件_动态图片_10    浅谈ashx文件_搜索_07{
 8浅谈ashx文件_c#_08        get 
 9浅谈ashx文件_c#_09浅谈ashx文件_动态图片_10        浅谈ashx文件_搜索_07{
10浅谈ashx文件_c#_08            return true;
11浅谈ashx文件_文本文件_17        }
 
12浅谈ashx文件_文本文件_17    }
 
13浅谈ashx文件_c#_08
14浅谈ashx文件_c#_08    public void ProcessRequest(HttpContext ctx)
15浅谈ashx文件_c#_09浅谈ashx文件_动态图片_10    浅谈ashx文件_搜索_07{
16浅谈ashx文件_c#_08        ctx.Response.Write("hello");
17浅谈ashx文件_文本文件_17    }
 
18浅谈ashx文件_文本文件_26}

19浅谈ashx文件_动态图片
 

注: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的类。