其實擴展名為ashx與為axd基本上是一樣的
都是用於寫web handler
可以通過它來調用IHttpHandler類
它免去了普通
aspx頁面的控件解析以及頁面處理的過程
唯一不同的地方是axd擴展名的必須要在webconfig中的<httpHandlers>中進行注冊而ashx直接在項目中當成aspx那樣添加使用即可
所 以在項目的添加文件中向導只有添加ashx文件的模板而沒有添加axd文件的模板那微軟為什麼這麼無聊搞兩個後綴全部使用ashx不就行了麼?干 脆利落原來如果你的web handler代碼不在Web的項目中的話那你就不能使用ashx了因為如果不在webconfig中注冊的話系統根本不知道要在那個dll庫中 才能找到相應的代碼
如
<add verb="*" path="OpenSearchaxd" type="CompanyComponentsHttpHandlerOpenSearchHandler (命名空間類名)CompanyExtensions(dll文件名)" validate="false"/>
只有注冊了web才知道OpenSearchaxd原來是在CompanyExtensionsdll中使用CompanyComponentsHttpHandlerOpenSearchHandler類處理
當然你搞個<add verb="*" path="OpenSearchashx" type= 那也未免不可習慣規范而已
webconfig裡那麼寫的原理是首先iis會把axd的文件handle然後就交給 FreeTextBoxControlsAssemblyResourceHandler FreeTextBox這個命名的類來處理而不是讓aspnet去處理
但是你的服務器提供商可能為了安全起見把axd到aspnet_isapidll的映射去掉了所以你在服務器運行就錯誤了你現在唯一能做的就是聯系你的服務器提供商讓他們恢復這個映射
擴展名 axd
執行文件C:WINDOWSMicrosoftNETFrameworkvaspnet_isapidll
限制為GETHEADPOSTDEBUG
腳本引擎打勾
在服務器的IIS裡有個默認的映射就是將*axd映射到aspnet_isapidll上
From:http://tw.wingwit.com/Article/program/net/201311/14426.html