Asp.net mvc MVC4应用程序在部署时提供404

Asp.net mvc MVC4应用程序在部署时提供404,asp.net-mvc,web-deployment,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"

我有一个使用.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 }
);
谢谢

编辑:

我明白了!我必须将以下内容添加到我的
web.config
中的
system.webServer

<modules runAllManagedModulesForAllRequests="true"/>

谁能告诉我这是为什么吗?


<modules runAllManagedModulesForAllRequests="true"/>

参考资料:

此参考资料可能有助于:

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


(显然,首先需要仔细考虑安装IIS或Windows service pack)

服务器上是否安装了MVC4和.net 4.5?是的,两者都已安装。嗯,我已安装.net 4.5,但是我需要在MVC4服务器上安装什么呢?这并不能完全解释我的具体问题。如果在这里总结链接的内容,以防链接消失,这个答案会更好。这是近3年前的事了。我甚至不记得我在做什么项目。谢谢你的信息。