我已启用请求筛选,并且“允许未列出的文件扩展名”设置为false。 当请求任何正常的path,包括“ http:// localhost ”我得到一个404.7错误 – “请求过滤模块被configuration为拒绝文件扩展名”。
如果我设置“允许未列出的文件扩展名”为true,那么该网站工作正常。
我知道“ http:// localhost / ”映射到Views / Homes / Index.cshtml“和.cshtml是明确允许的。
我想弄清楚哪个文件扩展名导致了这个问题,但在日志中找不到任何东西。 我有所有55“默认”文件types设置为允许。
试试“。” 作为文件扩展名。 这似乎在ASP.NET 4的Windows 2008 R2 SP1框中起作用。
我没有看到这个文档在任何地方,但它遵循与ASP.NET 4 / W2K8 R2 SP1中引入的用于扩展名URL的处理程序映射(请参阅web.config问题中处理程序的path属性的含义 )相同的规则。
我认为你想要做的是不可能的。
MVC不使用文件扩展名。 通过将“允许未列出的文件扩展名”设置为false,可以限制IIS只提供列出的扩展名。 由于您无法添加“扩展名”,因此IIS会拒绝该请求。
换句话说,如果您想使用MVC,则需要将“允许未列出的文件扩展名”设置为true。
你不需要允许'.cshtml'你甚至可以拒绝访问它,MVC仍然可以工作,因为视图文件不是由MVC直接通过IIS读取,然后通过IIS发送到客户端。