zoukankan      html  css  js  c++  java
  • (转)后缀为 ashx 与 axd 的文件有什么区别

    其实扩展名为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=.... 那也未免不可,习惯规范而已。 

    在服务器的IIS里有个默认的映射:就是将*.axd映射到aspnet_isapi.dll上。   
      webconfig里那么写的原理是,首先iis会把.axd的文件handle,然后就交给FreeTextBoxControls.AssemblyResourceHandler,   FreeTextBox这个命名的类来处理而不是让aspnet去处理。   
        
      但是你的服务器提供商可能为了安全起见,把.axd到aspnet_isapi.dll的映射去掉了,所以你在服务器运行就错误了。你现在唯一能做的就是联系你的服务器提供商,让他们恢复这个映射。   
        
        
      扩展名:   .axd   
      执行文件:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll   
        
      限制为:GET,HEAD,POST,DEBUG   
      脚本引擎打勾  

  • 相关阅读:
    ASP.NET编程的十大技巧
    C#学习心得(转)
    POJ 1177 Picture (线段树)
    POJ 3067 Japan (树状数组)
    POJ 2828 Buy Tickets (线段树)
    POJ 1195 Mobile phones (二维树状数组)
    HDU 4235 Flowers (线段树)
    POJ 2886 Who Gets the Most Candies? (线段树)
    POJ 2418 Cows (树状数组)
    HDU 4339 Query (线段树)
  • 原文地址:https://www.cnblogs.com/myitm/p/1714860.html
Copyright © 2011-2022 走看看