【问题标题】:ASP.NET MVC 2 Routing ErrorsASP.NET MVC 2 路由错误
【发布时间】:2011-02-10 19:02:43
【问题描述】:

将 ASP.NET MVC 2 Web 应用程序发布到我的学校 IIS 7.5 服务器后,我在初始加载时收到 403 错误,如果我尝试调用 /Home/About/Index 等路由,则会收到 404 错误

我什至尝试过发布默认的 ASP.NET MVC 2 示例应用程序,但没有成功。 Web 服务器似乎没有选择任何路由,并且它正在确定 /Home/About/Index 是一个目录查找。有没有其他人遇到过类似的问题?

我与系统管理员交谈并确认启用了 HTTP 重定向和 HTTP 错误。在四处寻找之后,由于发布位置不是 webroot,我看到了几个关于路由不起作用的 cmets。有什么原因吗?

目前系统管理员有以下网站目录结构。会不会是这个问题?

  • 默认网站
    • 2010 年秋季
      • Class123
      • Class321
    • 2011 年春季

我已经向系统管理员和我的教授寻求帮助,但是他们都不熟悉 MVC 和路由。任何帮助表示赞赏。

当然,我可以放弃我的想法,只使用 Web 窗体和 SOAP,就像我在其他课程中所做的那样,但我想了解更多关于 ASP.NET 和 REST 中的 MVC。感谢您的帮助!

【问题讨论】:

标签: asp.net-mvc-2 iis-7.5 asp.net-routing


【解决方案1】:

所以看起来系统管理员在需要集成时将应用程序池设置为经典模式。在默认的 ASP.NET MVC 2 示例应用程序中,我将 Global.asax 修改为:

routes.MapRoute(
    "Default",
    "{controller}.aspx/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

然后导航到 /Home.aspx/About,一切正常。

现在我只需要说服我们的系统管理员更改为集成。

参考:http://server.dzone.com/news/routes-iis-classic-and

编辑:我能够让系统管理员切换到集成。一切似乎都运行良好。

【讨论】:

    【解决方案2】:

    如果您使用默认路由,正确的 url 应该是 /Home/About。至于在 II 7 上部署 ASP.NET MVC 应用程序,您可能需要通过 following blog post

    【讨论】:

      【解决方案3】:

      是否需要设置 IIS 来映射通配符?我知道这适用于 IIS 6,但它也可能适用于 7。

      http://www.techdreams.org/microsoft/aspnet/how-to-fix-404-errors-of-aspnet-mvc-website-deployed-on-iis-6-windows-server-2003/2572-20090515

      【讨论】:

        猜你喜欢
        • 2011-08-05
        • 1970-01-01
        • 2016-07-30
        • 2016-07-30
        • 1970-01-01
        • 1970-01-01
        • 2011-03-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多