MVC 4应用程序在部署时提供404

Jor*_*dan 7 asp.net-mvc web-deployment

我有一个使用.NET 4.5的ASP.NET MVC 4项目,我试图使用Visual Studio 2012发布到IIS 7.0.当我在IIS Express中调试应用程序时,一切都运行得非常好.当我将它发布到服务器时,MVC请求返回404.我在网站上有一些aspx页面,它们都工作正常.以下是我的路由方案.它是样板代码:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)

谢谢.

编辑:

我知道了!我必须system.webServer在我的内容中添加以下内容web.config:

<modules runAllManagedModulesForAllRequests="true"/>
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么会这样?

Chr*_*row 1

此参考可能会有所帮助:

https://www.iis.net/configreference/system.webserver/modules

“以前必须将 runAllManagedModulesForAllRequests 设置为 true 才能支持路由。但是,使用 Service Pack 更新 IIS 7 后,在使用 ASP.NET 路由时,可以将 runAllManagedModulesForAllRequests 的值设置为 false 或省略。”

(显然安装IIS或Windows服务包需要首先仔细考虑)