我试图让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注册表设置不是一个问题。
答案 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下的目录中运行,可能是相关的...)