程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 後綴為 ashx 與 axd 的文件區別淺析

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

編輯:關於ASP.NET
    其實擴展名為ashx與為axd基本上是一樣的,都是用於寫web handler,可以通過它來調用IHttpHandler類,它免去了普通.aspx頁面的控件解析以及頁面處理的過程。  

    唯一不同的地方是:axd擴展名的必須要在web.config中的<httpHandlers>中進行注冊,而ashx直接在項目中當成aspx那樣添加使用即可。
    所 以在項目的添加文件中,向導只有添加ashx文件的模板,而沒有添加axd文件的模板。那微軟為什麼這麼無聊搞兩個後綴,全部使用ashx不就行了麼?干 脆利落。原來,如果你的web handler代碼不在Web的項目中的話,那你就不能使用ashx了,因為如果不在web.config中注冊的話,系統根本不知道要在那個dll庫中 才能找到相應的代碼。
    如:
    <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=.... 那也未免不可,習慣規范而已。
      webconfig裡那麼寫的原理是,首先iis會把.axd的文件handle,然後就交給 FreeTextBoxControls.AssemblyResourceHandler,   FreeTextBox這個命名的類來處理而不是讓aspnet去處理。 
      但是你的服務器提供商可能為了安全起見,把.axd到aspnet_isapi.dll的映射去掉了,所以你在服務器運行就錯誤了。你現在唯一能做的就是聯系你的服務器提供商,讓他們恢復這個映射。 
      擴展名:   .axd 
      執行文件:C:WINDOWSMicrosoft.NETFrameworkv1.1.4322aspnet_isapi.dll 
      限制為:GET,HEAD,POST,DEBUG 
      腳本引擎打勾
    在服務器的IIS裡有個默認的映射:就是將*.axd映射到aspnet_isapi.dll上。 

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved