• .ashx作用(摘自网络)


    ashx 文件的作用

    ashx 文件的作用(转载)作者:舞指如歌 2007-11-01 10:16:03 标签: IT/科技 .ashx 文件用于写web handler的。其实就是带HTML和C#的混合文件。当然你完全可以用.aspx 的文件后缀。使用.ashx 可以让你专注于编程而不用管相关的WEB技术。.ashx必须包含IsReusable. 如下例所示
     1 <% @ webhandler language="C#" class="AverageHandler" %>
     2 
     3 using System;
     4 using System.Web;
     5 
     6 public class AverageHandler : IHttpHandler
     7 {
     8 public bool IsReusable
     9 { get { return true; } }
    10 public void ProcessRequest(HttpContext ctx)
    11 {
    12 ctx.Response.Write("hello");
    13 }
    14 }

    .ashx比.aspx的好处在与不用多一个html 
    注意了VS2005中Web应用程序项目模板里的Generic Handler 项,发现它是一个.ashx文件,实际上它是一个HttpHandler。后来查了一下.Net SDK文档,发现Asp.Net1.1也支持.ashx,但是没有给出详细内容。

    我们都知道,HttpHandler是一个彻底自定义Http请求的方法,它通过web.config来定义Asp.Net运行时来过滤出要自定义的Http请求,发送到定义在web.config的指定类中。

    利用.ashx文件是一个更好的方法,这个文件类似于.aspx文件,可以通过它来调用HttpHandler类,从而免去了普通.aspx页面的控件解析以及页面处理的过程。这个文件特别适合于生成动态图片,生成动态文本等内容。

    建立方法如下:
    首先打开一个Web项目,然后在任意目录下使用VS2003解决方案资源管理器的“添加”-->“添加新项”,在对话框中选择“文本文件”,然后在文件名处输入“TextBuilder.ashx”。

    然后在同目录下,使用解决方案资源管理器,使用“添加”-->“添加类”,在类文件名处输入“TextBuilder.ashx.cs”。可以看出,它的文件命名规律与.aspx文件相同。

    然后在.cs文件处输入以下代码(名称空间略):

     1 using System.Web
     2 public sealed class TextBuilder : IHttpHandler
     3 {
     4     public void ProcessRequest(HttpContext context)
     5     {
     6         context.Response.ClearContent();
     7         context.Response.ContentType = "text/plain";
     8         context.Response.Write("Hello World");
     9         context.Response.End();
    10     }
    11 
    12     public bool IsReusable
    13     {
    14         get { return true; }
    15     }
    16 }

    然后在“TextBuilder.ashx”文件的第一行处输入上面这个类的调用代码:
    <%@ WebHandler language="C#" class="MyNamespace.TextBuilder" codebehind="TextBuilder.ashx.cs" %>
    上面的代码需要注意的是:必须在Class项中输入类的完整名称,即包括名称空间及类名称。

    最后保存并编译项目。

    使用IE测试,输入这个.ashx的地址即可。

    大家可以看出Response类有个OutputStream方法,可以向客户端输出二进制数据流,所以在我的项目中,使用这个方法,在一个.ashx中使用DundasChart控件就可以生成非常好的统计图,用它发送二进制数据,方便快捷,而且不需在web.config内输入任何配置代码。

  • 相关阅读:
    清理yum源
    XZ压缩
    Linux命令之dot
    calltree查看工程代码中的函数调用关系
    valgrind 打印程序调用树+进行多线程性能分析
    LINUX 性能 测试 优化工具
    TCP/IP(84) 详解
    perf---LINUX内核研究
    廖雪锋笔记3:类型转换
    廖雪锋笔记2:list,tuble
  • 原文地址:https://www.cnblogs.com/yinyakun/p/3236054.html
Copyright © 2020-2023  润新知