1

可能重复:
MVC4 HTTP 错误 403.14 - 禁止

每次我必须配置一个 ASP.Net mvc 应用程序时,我都会遇到同样的错误:

HTTP Error 403.14 - Forbidden
The Web server is configured to not list the contents of this directory.

这可能发生是有原因的,我已经弄清楚了。

将应用程序池配置为使用 LocalSystem 帐户。在项目文件夹中添加了此用户的权限。

今天另一个有这个问题的应用程序只更改应用程序池以使用 LocalSystem 帐户是不够的。我能做些什么来解决这个问题。

PS:在 Asp Net mvc 中,我们没有在 IIS 上启用浏览器目录,所以我不明白为什么会出现问题。

4

1 回答 1

5

您看到此错误正是因为您不允许目录浏览。这向您显示的是 MVC 没有收到请求并且 IIS 正在尝试查找默认文档。 我过去回答过一个类似的问题,也许其中一些建议会帮助你发现你的问题

错误 403.14 是不允许列出目录内容的 HTTP 错误代码。请确保

  • 您已将网站设置为 IIS 中的应用程序您已在服务器上安装了 .NET 4.5
  • 您已将应用程序池设置为运行正确版本的 .NET 框架(即,它未设置为 .NET 2.0
  • 您正在应用程序池 .NET 上使用集成管道
  • 4.5实际上是在IIS中注册的。有关类似问题/解决方案,请参阅此帖子通常,a 和 d 是围绕 MVC 部署到 IIS 的最大问题

另外,检查您的 web.config 并确保此行存在:

<system.webServer>
   <modules runAllManagedModulesForAllRequests="true"/> 
 </system.webServer>

更新

好吧,我当然没想到我的回答会受到如此多的关注……话虽如此,我可以在下面的对话中展开更多的讨论。DarinD 表示担心

<system.webServer>
   <modules runAllManagedModulesForAllRequests="true"/> 
 </system.webServer>

是您的 Web 服务器的额外负担,他是正确的。此行将导致 IIS 为任何请求加载所有模块,包括静态文件。话虽如此,考虑到 IIS 7 的各个方面(例如内核缓存),除非您托管一个非常高流量的站点/拥有大量模块,否则您或您的用户很可能不会注意到性能影响。

如果您想查看可能不同的解决方案,请查看此博客文章以获取有关上面 managedModule 行的更多信息,您可以测试那里提出的解决方案是否也解决了您的问题。

最后,这是一篇博文,不仅涵盖了潜在的性能影响,还深入探讨了路由的工作原理以及在 IIS 6 和 7 上获取无扩展 URL 路由所需的操作(也应涵盖 7.5)

于 2013-01-23T20:58:13.017 回答