asp.net 中ashx、axd的区别
?????????? 原文: http://blog.csdn.net/huangjihua0402/article/details/8739918
其實擴展名為ashx與為axd基本上是一樣的,都是用于寫web handler,可以通過它來調(diào)用IHttpHandler類,它免去了普通.aspx頁面的控件解析以及頁面處理的過程。
唯一不同的地方是:axd擴展名的必須要在web.config中的<httpHandlers>中進(jìn)行注冊,而ashx直接在項目中當(dāng)成aspx那樣添加使用即可。
所以在項目的添加文件中,向?qū)е挥刑砑觓shx文件的模板,而沒有添加axd文件的模板。
那微軟為什么這么無聊搞兩個后綴,全部使用ashx不就行了么?干脆利落。原來,如果你的web handler代碼不在Web的項目中的話,那你就不能使用ashx了,因為如果不在web.config中注冊的話,系統(tǒng)根本不知道要在那個dll庫中才能找到相應(yīng)的代碼。
如:
只有注冊了,web才知道OpenSearch.axd原來是在Company.Extensions.dll中,使用Company.Components.HttpHandler.OpenSearchHandler類處理。 當(dāng)然你搞個<add verb="*" path="OpenSearch.ashx" type=.... 那也未免不可,習(xí)慣規(guī)范而已。
? webconfig里那么寫的原理是,首先iis會把.axd的文件handle,然后就交給FreeTextBoxControls.AssemblyResourceHandler,?? FreeTextBox這個命名的類來處理而不是讓aspnet去處理。??
???
? 但是你的服務(wù)器提供商可能為了安全起見,把.axd到aspnet_isapi.dll的映射去掉了,所以你在服務(wù)器運行就錯誤了。你現(xiàn)在唯一能做的就是聯(lián)系你的服務(wù)器提供商,讓他們恢復(fù)這個映射。??
?
? 擴展名:?? .axd??
? 執(zhí)行文件:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll??
???
? 限制為:GET,HEAD,POST,DEBUG??
? 腳本引擎打勾?
在服務(wù)器的IIS里有個默認(rèn)的映射:就是將*.axd映射到aspnet_isapi.dll上。?
總結(jié)
以上是生活随笔為你收集整理的asp.net 中ashx、axd的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用JQuery jsonp实现Ajax
- 下一篇: 东方甄选1752万元扩建河南焦作自营品工