ashx文件和aspx文件有什么不同? 我们先新建一个ashx文件看看:
1 <%@ WebHandler Language="C#" Class="Handler" %> 2 using System; 3 using System.Web; 4 public class Handler : IHttpHandler 5 { 6 public void ProcessRequest (HttpContext context) 7 { 8 context.Response.ContentType = "text/plain"; 9 context.Response.Write("Hello World"); 10 } 11 public bool IsReusable 12 { 13 get 14 { 15 return false; 16 } 17 } 18 }
这是新建了Handler.ashx文件.
ashx比aspx简洁多了吧.只有一个文件,没有后台cs文件(基于代码安全考虑,后边我们会自己添加这个文件).ashx对比aspx文件,就好像 少了cs文件.其实这就是ashx和aspx不同的地方,因为aspx要将前后台显示和处理逻辑分开,所以就弄成了两个文件,其实,在最终编译的时 候,aspx和cs还是会编译到同一个类中去.这中间就要设计html的一些逻辑处理.而ashx不同,它只是简单的对web http请求的直接返回你想要返回的结果.比aspx少处理了html的过程.理论上,比aspx要快.
看看.net config文件中对两个文件类型请求的配置吧:
1 <add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True" /> 2 <add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="True" />
可以看到两个文件处理的类不一样(ashx处理的类叫SimpleHandleFactory,既然叫Simple,应该处理过程也比较Simple.响应速度也应该快点吧:)