博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
axd与ashx区别
阅读量:7231 次
发布时间:2019-06-29

本文共 1137 字,大约阅读时间需要 3 分钟。

简单说明一下axd文件。axd文件实际上并不是在硬盘上存在的文件,而是HttpHandler的一种映射。在ASP.NET MVC中有很多内置的axd到ashx的映射。你可以在web.config中通过xxx.axd注册你自己的handler.其实扩展名为ashx与为axd基本上是一样的,都是用于写web handler,可以通过它来调用IHttpHandler类,它免去了普通.aspx页面的控件解析以及页面处理的过程。

唯一不同的地方是:axd扩展名的必须要在web.config中的<httpHandlers>中进行注册,而ashx直接在项目中当成aspx那样添加使用即可。所以在项目的添加文件中,向导只有添加ashx文件的模板,而没有添加axd文件的模板。那微软为什么这么无聊搞两个后缀,全部使用ashx不就行了么?干脆利落。原来,如果你的web handler代码不在Web的项目中的话,也就是不在同一个dll中,那你就不能使用ashx了,因为如果不在web.config中注册的话,系统根本不知道要在那个dll库中才能找到相应的类来执行。所以,单纯的使用ashx的话,是无法使用第三方的带有IHttpHandler的类库的

使用axd,就可以通过在web.config中注册来使用第三方的IhttpHandler.

如:

<add verb="*" path="OpenSearch.axd" type="Company.Components.HttpHandler.OpenSearchHandler, (命名空间.类名)Company.Extensions(.dll文件名)" validate="false"/>

只有注册了,web才知道OpenSearch.axd原来是在Company.Extensions.dll中,使用Company.Components.HttpHandler.OpenSearchHandler类处理。当然你搞个

<add verb="*" path="OpenSearch.ashx" type=.... 那也未免不可,习惯规范而已。

在ASP.NET Framework中有很多自带的很好用的IHttpHandler,比如说,web.config中的<trace>标签,就是通过IHttpHandler来获取request和response中的数据信息然后显示在请求的页面中,便于开发时的调试。在web.config中填写 <trace enabled="true" requestLimit="40" localOnly="false" pageOutput="true" />,然后你请求的页面上会自动加载上请求信息。

 

转载地址:http://uipfm.baihongyu.com/

你可能感兴趣的文章
DataTable.AcceptChanges方法有何用处
查看>>
canvas
查看>>
win7 远程桌面连接centos 6.5
查看>>
机器学习中使用「正则化来防止过拟合」到底是一个什么原理?为什么正则化项就可以防止过拟合?...
查看>>
POJ 1696 Space Ant
查看>>
hdu 3999 The order of a Tree
查看>>
MySql相关及如何删除MySql服务
查看>>
CSS(3)多种方法实现水平垂直居中效果
查看>>
与父亲相处的无奈
查看>>
项目总结(一)->项目的七宗罪
查看>>
VC++常规错误之17:1>nafxcwd.lib(afxmem.obj) : error LNK2005
查看>>
error while loading shared libraries: libxcb-aux.so.0: cannot open shared object file
查看>>
【网络游戏同步技术】帧同步的一致性
查看>>
多线程-Condition
查看>>
SSM事务
查看>>
10-15
查看>>
AlexNet-ImageNet Classification with Deep Convolutional Neural Networks
查看>>
微软云linux服务器FTP文件传输错误解决办法
查看>>
json与javabean之间的转化
查看>>
spring的事务管理配置
查看>>