如何防止IIS提供某种types的文件?

我不想从MIME列表中删除条目,我只想告诉IIS停止提供特定扩展名的文件。

为什么让IIS如此简单地停止提供特定扩展名的文件是非常困难的?

我见过的解决scheme,如…添加一个映射指向一些404.dll,只存在于一些独立的locking工具包,声称对IIS 6.0 + obselete。 我也读过,可以有ASP.NET明确禁止提供文件,通过创build一个映射到asp.net处理程序的DLL,然后指定Web.config文件types的System.Web.HttpForbiddenHandler。 那些工作,尽pipe最初禁止处理程序似乎没有工作,感谢浏览器caching,哈哈:(见http://stackoverflow.com/questions/208571/castleproject-vm-httpforbiddenhandler-not-work的答案) 。

我只是在这里寻找一个简单的解决scheme。

我不会让其他用户很难解释的问题使用System.Web.HttpForbiddenHandler方法。 我怀疑他的问题可能还有其他问题没有充分解释。

关于将.fla映射到ASP.NET ISAPI扩展和使用System.Web.HttpForbiddenHandler ,这个工作非常好,我们从来没有“caching”的问题。 你真的试过这个,而不是听听传闻吗?

您的另一种方法是从全局或站点级别删除关联的MIMEtypes。

“为什么让IIS做这么简单的事情,就像停止提供特定扩展名的文件一样很难?”

没有听起来厚颜无耻,上述都不是困难的,这是如何完成的,没有太多的工作要实施。

简单解决scheme

  1. 不要把这些文件放到你的网页上
  2. 把它们放在那里已经没有服务的扩展 – 我做了很多 – 我添加.config文件,我不想送达 – 这样我就不必更改IIS。

在IIS 7中更容易,因为您可以修改web.config来禁止任何文件types。 在IIS 6中,只有注册为由ASP.NET ISAPI筛选器处理的文件types才受web.config设置的影响。