zoukankan      html  css  js  c++  java
  • ashx一般处理程序(转载)

    .NET里面webform的后缀是aspx

    WCF和WebService的后缀是asmx

    四个疑问:

    1、什么时候用

    2、优缺点

    3、简单实现机制

    4、简单DEMO

    1、什么时候用

        虽然通过标准的方式可以创建处理程序,但是实现的步骤比较复杂,为了方便网站开发中对处理程序的应用,从Asp.net 2.0开始,asp.net提供了称为一般处理程序的处理程序,允许我们使用比较简单的方式定义扩展名为ashx的专用处理程序。

        对于asp.net网站来说,网站最觉的处理结果就是HTML网页,生成网页的工作通常使用扩展名为aspx的Web窗体来完成。对于处理结果不是HTML的请求,都可以通过一般处理程序完成。例如生成RSS Feed、XML、图片等。
        一般处理程序是asp.net网站中最为简单、高效的处理程序,在处理返回类型不是HTML的请求中有着重要的作用。

        不知道我的理解正不正确,那感觉asmx适合作为C/S的服务器端来使用。

    2、优缺点

         通常是实现IHttpHandler接口,因为不必继承自Page类,所以没有那么多事件需要处理,不必消耗太多资源,所以性能方面要比aspx高

    3、简单实现机制

    .ashx 文件用于写web handler的。.ashx文件与.aspx文件类似,可以通过它来调用HttpHandler类,它免去了普通.aspx页面的控件解析以及页面处理的过程。其实就是带HTML和C#的混合文件。

    .ashx文件适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容。

    4、简单DEMO

    在VS2013下,右键项目-->添加-->一般处理程序,就添加成功了,不知道是不是我添加过,所以在右键里面有。

    另一种添加方式是右键项目-->添加-->新建项,然后如下图所示。

    但我诧异的发现两种添加方式添加出来的文件图标不一样。

    第一种方式添加图标和最下方的WebService相同,而第二种添加方式只添加了一个类。

    先不管第二种,第一种生成的代码有两个文件

    Handler1.ashx

    [plain] view plain copy
     
    1. <%@ WebHandler Language="C#" CodeBehind="Handler1.ashx.cs" Class="WebApplication1.Handler1" %>  

    Handler1.ashx.cs

    [csharp] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.Linq;  
    4. using System.Web;  
    5.   
    6. namespace WebApplication1  
    7. {  
    8.     /// <summary>  
    9.     /// Handler1 的摘要说明  
    10.     /// </summary>  
    11.     public class Handler1 : IHttpHandler  
    12.     {  
    13.   
    14.         public void ProcessRequest(HttpContext context)  
    15.         {  
    16.             context.Response.ContentType = "text/plain";  
    17.             context.Response.Write("Hello World");  
    18.         }  
    19.   
    20.         public bool IsReusable  
    21.         {  
    22.             get  
    23.             {  
    24.                 return false;  
    25.             }  
    26.         }  
    27.     }  
    28. }  

    接下来就是怎么访问这个文件,我直接点F5运行项目,然后在浏览器地址栏加上路径,我整个路径是这样的http://localhost:6988/Handler1.ashx

    然后成功看到浏览器上一个光秃秃的Hello World

  • 相关阅读:
    关于mybatis中mapper.xmlSQL语句书写的心得
    笔记
    SpringMVC的小总结
    配置generatorConfig.xml自动生成的代码的sql书写问题
    关于SQL中的排序问题
    鼠标的change事件
    Git学习笔记 --第一章
    XHR对象
    黑马程序员——java学习6(127-151)——多线程
    黑马程序员——java学习5(107-126)——内部类,异常,包
  • 原文地址:https://www.cnblogs.com/khfang/p/5787441.html
Copyright © 2011-2022 走看看