转载地址:http://blog.csdn.net/wanda39kela/article/details/46118839

.NET里面webform的后缀是aspx

WCF和WebService的后缀是asmx

然后今天拿到一个客户端代码,调用服务端,服务端后缀是ashx瞬间傻蛋了,.NET我不知道的组件真多。

四个疑问:

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 plaincopy
  1. <%@ WebHandler Language="C#" CodeBehind="Handler1.ashx.cs" Class="WebApplication1.Handler1" %>

Handler1.ashx.cs

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

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

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

ashx一般处理程序相关推荐

  1. 由几个月前写的(验证码利用ashx一般处理程序来做),修改为不用以一般处理程序...

    这段代码是我根据几个月前 ,我写的"验证码 利用ashx一般处理程序来实现"的一片随笔所想: 见代码: Page:check.aspx protected void Page_Lo ...

  2. ASP.NET的ASHX一般处理程序中Session为null且不能赋值

    首先我解释一下 ashx文件以前我们做ajax处理的时候要用常用的web界面处理. 现在不用了,微软有ashx文件,这个文件就是后台一些处理文件,用extjs的同学可能会更清楚一点. 如果在这个文件中 ...

  3. C#中[WebMethod]的用法,aspx、ashx、asmx

    在.net 3.5的情况下 前台JQuery做Ajax的时候,服务器端 (1)可以调用aspx.cs 中声明带有[WebMehtod]的public static 的方法(不需要自己手动添加web.c ...

  4. asp.net ashx 学习总结

    ashx 一般处理程序(HttpHandler)是·NET众多web组件的一种,ashx是其扩展名.一个httpHandler接受并处理一个http请求 ,类比于Java中的servlet.类比于在J ...

  5. ashx误删后,未能创建类型

    描述 今天,因为临时有事儿,需要去一趟其他城市,项目比较赶.所以只能在车上继续敲代码,倒霉的触摸板让我误删一个ashx一般处理程序.好死不死的这个文件的代码还很长. 我的做法是[垃圾桶]→[还原]→V ...

  6. 【基础知识】ASP.NET[基础一(ashx)]

    一.ASP.NET介绍 1.ASP.NET包括: 一般处理程序(ashx):WebForm ( aspx ):MVC(Model view con~~): 2.ASP.NET的常用文件(重点): 1& ...

  7. ashx aspx asmx

    在.net 3.5的情况下 前台JQuery做Ajax的时候,服务器端 (1)可以调用aspx.cs 中声明带有[WebMehtod]的public static 的方法(不需要自己手动添加web.c ...

  8. ashx返回图片_显示ashx图片

    ascx aspx ashx asmx 文件的作用 ascx aspx ashx asmx 文件的作用 ascx: Ascx 是给予Web的用户控件(UserControl),一般是用来重用的,不能直 ...

  9. 基于Jquery插件Uploadify实现实时显示进度条上传图片

    网址:http://www.jb51.net/article/83811.htm 这篇文章主要介绍了基于Jquery插件Uploadify实现实时显示进度条上传图片的相关资料,感兴趣的小伙伴们可以参考 ...

最新文章

  1. 巨量模型时代,浪潮不做旁观者:2457亿参数,打造全球最大中文预训练模型
  2. 杨凌农业自贸区谋定功能-万祥军:对话农民丰收节交易会
  3. oracle shared_pool_size 0,Oracle shared_pool_reserved_size参数设置说明
  4. sql 同一字段合并
  5. Windows Server 2008 Server Core模式
  6. 原型模式(Prototype) 1
  7. 总结的Server.Mappath的用法
  8. jsp九大内置对象的作用及用法
  9. 讯飞输入法pad版x86_讯飞输入法Pad版
  10. 深入探讨MFC消息循环和消息泵
  11. 微信协议简单调研笔记 (2)
  12. 802.11系列标准简介
  13. python列表的操作
  14. Bootstrap broker localhost9092 (id -1 rack null) disconnected
  15. 小白学 Python 数据分析(4):Pandas——数据导入
  16. 技校计算机应用基础,技校《计算机应用基础》教法探讨
  17. 蒙特卡洛模拟电动汽车充电matlab,基于蒙特卡洛模拟的电动汽车充电负荷预测
  18. cad注释比例和打印比例不一样_CAD注释性比例该如何设置?看完你就懂了
  19. 这可能是最完整的进藏攻略
  20. 2019 Google Adsense 申请 两个月内审核通过两个网站复盘

热门文章

  1. spark.sql读取Hive数据报错
  2. mysql事务的acid、三种并发问题与四种隔离级别
  3. 【java】关于Map的排序性的一次使用,有序的Map
  4. C#实现图片文件到数据流再到图片文件的转换
  5. 探秘采云间:全链路数据处理工具直击传统DW/BI痛点
  6. 解决dom4j java.lang.NoClassDefFoundError: org/jaxen/JaxenException
  7. EditText 双击才能获取点击事件
  8. oracle存储过程中数组的使用
  9. word2003插入页码
  10. scikit-learn学习之贝叶斯分类算法