对某些路径禁用IIS请求筛选

对某些路径禁用IIS请求筛选,iis,iis-7,requestfiltering,Iis,Iis 7,Requestfiltering,是否有任何方法可以将IIS 7.0+(或7.5+)配置为完全禁用某些路径的请求筛选。就是 http://host.local/foo/bar.cs 是禁止的(因为在applicationHost.config中明确禁止提供*.cs文件),但是 是允许的。在您的allow all目录中,您可以使用以下配置创建web.config文件: 此配置从请求筛选中删除.cs扩展名。此外,为了让IIS正确地提供内容,它需要MIME类型,因此.cs扩展名被添加为text/plain 这些更改也将应用于al

是否有任何方法可以将IIS 7.0+(或7.5+)配置为完全禁用某些路径的请求筛选。就是

http://host.local/foo/bar.cs
是禁止的(因为在
applicationHost.config
中明确禁止提供
*.cs
文件),但是


是允许的。

在您的
allow all
目录中,您可以使用以下配置创建web.config文件:


此配置从请求筛选中删除
.cs
扩展名。此外,为了让IIS正确地提供内容,它需要MIME类型,因此
.cs
扩展名被添加为text/plain


这些更改也将应用于
allow all
的所有子目录。此配置与集成的应用程序池配合使用。Classic可能需要额外的更改,因为有HTTP处理程序也明确禁止.cs。

这很好,但我没有
/allow all
路径本身:它是由ASP.NET MVC路由处理的动态URL。在这种情况下,这可能吗。@Anton如果是动态的,那么最好尝试自己为它们服务——为某些脚本创建url重写规则,该脚本将读取请求文件的内容并将其发送到浏览器中。我只是不确定URL重写模块是在请求过滤之前还是之后执行的——我认为是在请求过滤之后执行的(对于真实的/现有的文件),但对于不存在的URL可能不是这样。@LazyOne URL重写似乎是在请求过滤之后执行的。或者,至少我安装的自定义处理程序阻塞了,直到我在过滤器中为所讨论的路径添加了一个。
http://host.local/foo/allow-all/bar.cs