2013-04-23 193 views
6

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

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

是否在服务器上安装了MVC4和.net 4.5? – 2013-04-23 20:47:33

+0

是的,都安装了。 – Jordan 2013-04-23 20:58:34

+0

嗯,我已经安装了.NET 4.5,但是我需要在服务器上安装MVC 4吗? – Jordan 2013-04-24 14:26:02

回答

1

此引用可以帮助:

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

“runAllManagedModulesForAllRequests以前必须设置为true,支持路由然而,一旦IIS 7已经更新一个Service Pack,使用ASP.NET路由时,runAllManagedModulesForAllRequests的值可以设置为false或省略。“

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

+0

这是近3年前。我甚至不记得我正在做什么项目。谢谢(你的)信息。 – Jordan 2016-01-27 15:54:51

2
<modules runAllManagedModulesForAllRequests="true"/> 

参考:Here

+0

这并不能解释我的具体问题。 – Jordan 2013-04-24 13:28:58

+0

这个答案会更好,如果在这里链接的内容总结在这里,以防链接死亡 – reggaeguitar 2015-07-21 15:15:10