IIS7.5下的Asp Net Mvc 4应用程序没有重定向到登录页面

时间:2013-01-23 20:52:58

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

  

可能重复:
  MVC4 HTTP Error 403.14 - Forbidden

每次我必须配置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上启用浏览器目录,所以我不明白为什么会出现问题。

1 个答案:

答案 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)