.ashx 文件用于写web handler的。.ashx文件与.aspx文件类似,可以通过它来调用HttpHandler类,它免去了普通.aspx页面的控件解析以及页面处理的过程。其实就是带HTML和C#的混合文件。
.ashx文件适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容。当然你完全可以用.aspx 的文件后缀。
如果是页面请求,除了要经历HTTP应用程序处理外,还必须经历完整页面构建周期。而如果直接请求的是HTTP处理程序(.ashx),将省去页面的构建周期,特别是其中的控件解析以及页面处理的过程,减少服务器资源浪费。ASP.NET中提供了一个IHttpHandler接口来创建自定义的HTTP处理程序,其后缀名为.ashx。
IHttpHandler接口提供了一个方法ProcessRequest和一个属性IsReusable。
.ashx必须包含IsReusable。属性IsReusable指示本类是否进行缓存以便为多个请求提供服务。
ProcessRequest方法是用来添加相应处理代码的地方,它提供的HttpContext实例参数可以访问Request和Response对象。
示例:
<% @ webhandler language="C#" class="AverageHandler" %>
using System;
using System.Web;
public class AverageHandler : IHttpHandler
{
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext ctx)
{
ctx.Response.Write("hello");
}
.ashx文件适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容。当然你完全可以用.aspx 的文件后缀。
如果是页面请求,除了要经历HTTP应用程序处理外,还必须经历完整页面构建周期。而如果直接请求的是HTTP处理程序(.ashx),将省去页面的构建周期,特别是其中的控件解析以及页面处理的过程,减少服务器资源浪费。ASP.NET中提供了一个IHttpHandler接口来创建自定义的HTTP处理程序,其后缀名为.ashx。
IHttpHandler接口提供了一个方法ProcessRequest和一个属性IsReusable。
.ashx必须包含IsReusable。属性IsReusable指示本类是否进行缓存以便为多个请求提供服务。
ProcessRequest方法是用来添加相应处理代码的地方,它提供的HttpContext实例参数可以访问Request和Response对象。
示例:
<% @ webhandler language="C#" class="AverageHandler" %>
using System;
using System.Web;
public class AverageHandler : IHttpHandler
{
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext ctx)
{
ctx.Response.Write("hello");
}
}