7

我有一个使用 .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"/>

谁能告诉我这是为什么?

4

2 回答 2

2
<modules runAllManagedModulesForAllRequests="true"/>

参考:这里

于 2013-04-23T21:14:54.653 回答
1

此参考可能会有所帮助:

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

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

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

于 2016-01-27T05:26:49.713 回答