.net 如何使用IIS6为*all*文件扩展名启动HttpModule

.net 如何使用IIS6为*all*文件扩展名启动HttpModule,.net,asp.net,iis-6,httpmodule,isapi,.net,Asp.net,Iis 6,Httpmodule,Isapi,我对这个问题的研究已经足够多了,可以推测这只可能使用到“aspnet_isapi.dll”的通配符映射。我还读到,这也是不推荐的,但我没有找到其他方法来获得任何扩展的HttpModule 我不能这样做的原因是“.asp”扩展出现了问题。我在尝试访问ASP文件时收到一条“This type of page not served”(此类型的页面未提供)消息,即使ASP文件只有纯HTML,或者根本没有内容 有没有办法告诉.NET不要尝试处理asp文件的内容,而只启动HttpModule 也许我在这里走

我对这个问题的研究已经足够多了,可以推测这只可能使用到“aspnet_isapi.dll”的通配符映射。我还读到,这也是不推荐的,但我没有找到其他方法来获得任何扩展的HttpModule

我不能这样做的原因是“.asp”扩展出现了问题。我在尝试访问ASP文件时收到一条“This type of page not served”(此类型的页面未提供)消息,即使ASP文件只有纯HTML,或者根本没有内容

有没有办法告诉.NET不要尝试处理asp文件的内容,而只启动HttpModule

也许我在这里走错了路……我只想在对某个目录发出HTTP请求时执行一块.NET代码,不管文件扩展名如何,然后正常处理该请求


有人有什么想法吗?

听起来像是MIME类型的问题

早期版本的IIS包括 通配符MIME映射 允许IIS提供任何文件 不管它的扩展。IIS 6.0 不包括此通配符 字符MIME映射,但不支持 提供任何类型的扩展 未在中的MimeMap节点上定义 IIS元数据库

要为特定扩展定义MIME类型,请执行以下步骤:

  • 打开IIS Microsoft管理控制台(MMC),右键单击本地计算机名,然后单击属性
  • 单击MIME类型。 单击新建
  • 在“扩展名”框中,键入所需的文件扩展名(例如,.pdb)
  • 在MIME类型框中,键入application/octet stream
  • 应用新设置。请注意,您必须重新启动万维网发布服务,或等待工作进程循环,以使更改生效。在本例中,IIS现在提供扩展名为.pdb的文件

谢谢你的建议——我没有想到这一点,可能在以后的某个时候遇到了这个错误。不幸的是,这个错误不是来自IIS,而是来自.NET。这个错误也很有道理。我知道.NET无法解析ASP文件。ASP文件由完全不同的DLL处理。我只是想不出一种方法让IIS执行一些.NET代码,然后正常处理请求,不管是通过ASP还是其他方式。啊,对不起。。。错过了“…然后正常处理请求”。我认为这在IIS6中是不可能的,您必须使用IIS7或7.5,它可以为所有请求运行托管代码。在iIS6中,您只需挂起在每个请求上运行的代码,就可以使用C++编写的ISAPI过滤器。