ashx文件和aspx

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.响应速度也应该快点吧:)

原文地址:https://www.cnblogs.com/liubeimeng/p/3854753.html