熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

後綴為 ashx 與 axd 的文件區別淺析

2013-11-13 10:44:56  來源: .NET編程 
其實擴展名為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
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.