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

时间:2013-04-23 20:42:20

标签: 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 }
);

感谢。

编辑:

我明白了!我必须在system.webServer

中将以下内容添加到web.config
<modules runAllManagedModulesForAllRequests="true"/>

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

2 个答案:

答案 0 :(得分:2)

<modules runAllManagedModulesForAllRequests="true"/>

参考:Here

答案 1 :(得分:1)

此参考资料可能有所帮助:

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

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

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