每次我必须配置ASP.Net mvc应用程序时,我都会遇到同样的错误:
HTTP Error 403.14 - Forbidden
The Web server is configured to not list the contents of this directory.
这可能会发生这种情况,我已经弄明白了。
配置应用程序池以使用LocalSystem帐户。 在项目文件夹中为此用户添加了权限。
今天另一个有这个问题的应用程序并且只更改应用程序池以使用LocalSystem帐户是不够的。我该怎么做才能解决这个问题。
P.S:在Asp Net mvc中我们不在IIS上启用浏览器目录,所以我不明白为什么会出现问题。
答案 0 :(得分:5)
您正好看到此错误,因为您不允许目录浏览。这告诉你的是MVC没有收到请求,IIS正在尝试查找默认文档。 I have answered a question similar in the past,或许其中一些建议可以帮助您发现问题
错误403.14是不允许列出的HTTP错误代码 目录的内容。请确保
- 您已将网站设置为IIS中的应用程序您已在服务器上安装了.NET 4.5
- 您已将应用程序池设置为运行适当版本的.NET框架(即,它未设置为.NET 2.0
- 您正在使用应用程序池.NET上的集成管道
- 4.5实际上是在IIS中注册的。有关类似问题/解决方案,请参阅this post通常,a和d是最大的问题 将MVC部署到IIS
另外,请检查您的web.config并确保此行存在:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
<强>更新强>
嗯,我当然没想到会对我的答案给予太多的关注......话虽如此,我可以在下面的对话中进一步扩展。 DarinD表示关注
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
是您的网络服务器的额外负担,他是正确的。此行将导致IIS为任何请求加载所有模块,包括静态文件。话虽如此,鉴于IIS 7的方面,如内核缓存,除非您托管一个非常高的流量站点/有大量的模块,否则您或您的用户很可能不会注意到性能影响。
如果您想查看可能不同的解决方案,请查看this blog post以获取有关上述managedModule行的更多信息,您可以测试解决方案是否也可以解决您的问题。
最后,here is a blog post不仅涵盖了潜在的性能影响,而且还深入探讨了路由的工作原理以及在IIS 6和7上获取无扩展URL路由所需要做的事情(这也应该涵盖7.5)