我有一个使用.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"/>
谁能告诉我为什么会这样?
答案 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服务包需要先仔细考虑)