后綴為 ashx 與 axd 的文件區(qū)別淺析
更新時(shí)間:2013年07月30日 11:17:33 作者:
其實(shí)擴(kuò)展名為ashx與為axd基本上是一樣的,都是用于寫web handler,可以通過(guò)它來(lái)調(diào)用IHttpHandler類,它免去了普通.aspx頁(yè)面的控件解析以及頁(yè)面處理的過(guò)程。
唯一不同的地方是:axd擴(kuò)展名的必須要在web.config中的<httpHandlers>中進(jìn)行注冊(cè),而ashx直接在項(xiàng)目中當(dāng)成aspx那樣添加使用即可。
所以在項(xiàng)目的添加文件中,向?qū)е挥刑砑觓shx文件的模板,而沒(méi)有添加axd文件的模板。那微軟為什么這么無(wú)聊搞兩個(gè)后綴,全部使用ashx不就行了么?干脆利落。原來(lái),如果你的web handler代碼不在Web的項(xiàng)目中的話,那你就不能使用ashx了,因?yàn)槿绻辉趙eb.config中注冊(cè)的話,系統(tǒng)根本不知道要在那個(gè)dll庫(kù)中才能找到相應(yīng)的代碼。
如:
<add verb="*" path="OpenSearch.axd" type="Company.Components.HttpHandler.OpenSearchHandler, (命名空間.類名)Company.Extensions(.dll文件名)" validate="false"/>
只有注冊(cè)了,web才知道OpenSearch.axd原來(lái)是在Company.Extensions.dll中,使用Company.Components.HttpHandler.OpenSearchHandler類處理。
當(dāng)然你搞個(gè)<add verb="*" path="OpenSearch.ashx" type=.... 那也未免不可,習(xí)慣規(guī)范而已。
webconfig里那么寫的原理是,首先iis會(huì)把.axd的文件handle,然后就交給FreeTextBoxControls.AssemblyResourceHandler, FreeTextBox這個(gè)命名的類來(lái)處理而不是讓aspnet去處理。
但是你的服務(wù)器提供商可能為了安全起見(jiàn),把.axd到aspnet_isapi.dll的映射去掉了,所以你在服務(wù)器運(yùn)行就錯(cuò)誤了。你現(xiàn)在唯一能做的就是聯(lián)系你的服務(wù)器提供商,讓他們恢復(fù)這個(gè)映射。
擴(kuò)展名: .axd
執(zhí)行文件:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
限制為:GET,HEAD,POST,DEBUG
腳本引擎打勾
在服務(wù)器的IIS里有個(gè)默認(rèn)的映射:就是將*.axd映射到aspnet_isapi.dll上。
所以在項(xiàng)目的添加文件中,向?qū)е挥刑砑觓shx文件的模板,而沒(méi)有添加axd文件的模板。那微軟為什么這么無(wú)聊搞兩個(gè)后綴,全部使用ashx不就行了么?干脆利落。原來(lái),如果你的web handler代碼不在Web的項(xiàng)目中的話,那你就不能使用ashx了,因?yàn)槿绻辉趙eb.config中注冊(cè)的話,系統(tǒng)根本不知道要在那個(gè)dll庫(kù)中才能找到相應(yīng)的代碼。
如:
<add verb="*" path="OpenSearch.axd" type="Company.Components.HttpHandler.OpenSearchHandler, (命名空間.類名)Company.Extensions(.dll文件名)" validate="false"/>
只有注冊(cè)了,web才知道OpenSearch.axd原來(lái)是在Company.Extensions.dll中,使用Company.Components.HttpHandler.OpenSearchHandler類處理。
當(dāng)然你搞個(gè)<add verb="*" path="OpenSearch.ashx" type=.... 那也未免不可,習(xí)慣規(guī)范而已。
webconfig里那么寫的原理是,首先iis會(huì)把.axd的文件handle,然后就交給FreeTextBoxControls.AssemblyResourceHandler, FreeTextBox這個(gè)命名的類來(lái)處理而不是讓aspnet去處理。
但是你的服務(wù)器提供商可能為了安全起見(jiàn),把.axd到aspnet_isapi.dll的映射去掉了,所以你在服務(wù)器運(yùn)行就錯(cuò)誤了。你現(xiàn)在唯一能做的就是聯(lián)系你的服務(wù)器提供商,讓他們恢復(fù)這個(gè)映射。
擴(kuò)展名: .axd
執(zhí)行文件:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
限制為:GET,HEAD,POST,DEBUG
腳本引擎打勾
在服務(wù)器的IIS里有個(gè)默認(rèn)的映射:就是將*.axd映射到aspnet_isapi.dll上。
相關(guān)文章
asp.net 獲取某個(gè)時(shí)間段的星期并以表格形式排列出來(lái)
今天遇到了個(gè)關(guān)于時(shí)間的操作,而作為初學(xué)者的我,并不是很了解時(shí)間函數(shù)的操作,所以就園里問(wèn)了下別人,經(jīng)別人的幫助我自己實(shí)現(xiàn)了如何在某個(gè)時(shí)間段獲取星期。2010-03-03
徹底解決ASP.NET MD5加密中文結(jié)果和ASP不一致的問(wèn)題
ASP.NET MD5加密中文結(jié)果和ASP不一致的問(wèn)題的解決方法2009-07-07
使用jQuery Uploader顯示文件上傳進(jìn)度
在上傳大文件的時(shí)候, 我們都希望可以向用戶顯示上傳的進(jìn)度, 那么這里介紹的就是使用 jQuery Uploader 來(lái)實(shí)現(xiàn)這樣的效果2011-12-12
.NET 開(kāi)源配置組件 AgileConfig的使用簡(jiǎn)介
這篇文章主要介紹了.NET 開(kāi)源配置組件 AgileConfig的使用簡(jiǎn)介,幫助大家更好的理解和學(xué)習(xí)使用.net技術(shù),感興趣的朋友可以了解下2021-05-05
ASP.NET MVC:Filter和Action的執(zhí)行介紹
ASP.NET MVC之Filter和Action的執(zhí)行介紹,需要的朋友可以參考2012-11-11
VB.NET驗(yàn)證郵件地址的合法性實(shí)現(xiàn)代碼
現(xiàn)在,對(duì)于用戶在Web頁(yè)面上或電話中給出的Email地址,我們?cè)絹?lái)越不敢肯定它是否真的有效。在今天這個(gè)垃圾郵件泛濫成災(zāi)的年代,人們完全有理由舍不得輕易透露Email地址。2011-04-04
.net mvc頁(yè)面UI之Jquery博客日歷控件實(shí)現(xiàn)代碼
最近在做一個(gè)博客系統(tǒng),其他需要用到博客日歷控件,網(wǎng)上搜索了很多資料,其中大部分都是javascript的,經(jīng)過(guò)總結(jié)使用jquery實(shí)現(xiàn)了博客日歷效果。代碼如下2013-09-09
asp.net MaxLengthValidator 最大長(zhǎng)度驗(yàn)證控件代碼
如果數(shù)據(jù)庫(kù)字段為varchar或char類型,ASP.NET控件在可輸入漢字的情況下,MaxLength屬性不能保證在保存到數(shù)據(jù)庫(kù)時(shí)不發(fā)生截?cái)噱e(cuò)誤,因此寫了一個(gè)最大長(zhǎng)度驗(yàn)證控件,還可用于多行文本框。2009-12-12

