在IIS 6虚拟目录中运行的ASP.Net MVC 4应用程序上的目录列表被拒绝

时间:2012-03-08 17:33:49

标签: iis-6 asp.net-mvc-4

我试图让ASP.Net MVC 4在IIS6上运行,并且遇到了总是很有趣的目录列表拒绝错误。

在你开始发布关于无扩展名网址以及我如何阅读Haacked博客文章之前......我有:)所以这里的设置就是设置:

我创建了一个新网站并将其配置为使用ASP.Net 4.0。我不得不这样做,因为现有的默认网站是为ASP.Net 2.0配置的,这打破了无扩展的网址。在新网站下,我创建了一个虚拟目录,其中包含读/写/日志文件/索引选择的此资源选项,并执行设置为脚本的权限。

我已经验证ASP.Net v4.0.30319位于Web服务扩展列表中并且是允许的。我还验证了在我的虚拟目录映射配置中正确设置了.axd映射。

我完全被困住了......

作为琐事的一小部分,我在网站上直接指向我的ASP.Net 4网络应用程序,但我们需要通过虚拟目录来完成。我有这个工作的事实应该意味着EnableExtensionlessUrl注册表设置不是一个问题。

2 个答案:

答案 0 :(得分:22)

我遇到了同样的问题,当我使用未经检查的选项“验证文件存在”将“通配符应用程序映射”(.*)添加到aspnet_isapi.dll时,它已被清除

  

申请 - >属性 - >目录 - >配置 - >映射 - >   插入 - >浏览到   C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_isapi.dll - >   取消选中“验证文件是否存在” - >确定

现在该网站正常开放,没有任何问题。

答案 1 :(得分:2)

类似的问题:我们在IIS6盒子上安装了MVC4,按照描述设置了所有内容,并得到了同样的错误:

Directory Listing Denied
This Virtual Directory does not allow contents to be listed.

对我们来说,最后的解决方法是将UrlRoutingModule添加到web.config:

  <add name="UrlRoutingModule"
       type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

这是有道理的,但我不知道为什么我们需要明确添加它而其他人没有。 (我们在Sharepoint下的目录中运行,可能是相关的...)