【问题标题】:MvcMusicStore Deployment IssueMvcMusicStore 部署问题
【发布时间】:2011-07-20 13:25:24
【问题描述】:

我正在尝试在我的网站上部署 MvcMusicStore,但在顶部的页面导航方面遇到了一些问题。我在这些链接上收到 404 not found 错误。我认为这是一个路由问题,但它在本地工作。奇怪的是流派链接也可以在页面上使用。我已经包含了指向我的部署站点的链接以及路由代码。

http://mybeatonpath.com/MvcMusicStore"

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new {controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults
            );

    }

【问题讨论】:

  • 服务器上的哪个版本的 IIS 不起作用?
  • 当结尾有 / 时,您的所有顶部导航链接似乎都有效。
  • 是的。我还尝试在末尾添加 /Index 。创建这些链接的代码如下:
  • @Html.ActionLink("Store", "Index", "Store")
  • @Html.ActionLink("Store", "Index", "Store ")
  • @{Html.RenderAction("CartSummary", "ShoppingCart");}
  • @Html.ActionLink("Admin", "Index", "StoreManager")
  • @Html.ActionLink("Admin", "Index", "StoreManager")

标签: c# asp.net asp.net-mvc-3 routing web-deployment


【解决方案1】:

您可能需要在 IIS 上启用 ASP.NET 4.0。

这是如何在 IIS 6.0 中完成的:

您还需要wildcard mapping 才能为 IIS 6.0 和 IIS 7.0(经典模式)使用无扩展名 url。在 IIS 7.0 集成模式下,您无需配置此映射。

【讨论】:

  • 在 IIS 上启用了 ASP.NET 4.0,并且此站点正在使用 ASP.NET 4.0
  • 添加通配符映射确实有帮助,但管理员链接仍然无效。
  • 管理员链接不工作与此问题无关。通配符映射解决了我的问题。谢谢
【解决方案2】:

看起来您可能正在运行 IIS6。您需要进行一些调整,以便 IIS 知道如何处理 MVC 路由。您需要设置 IIS6 无扩展 URL。

Here 是关于如何进行的说明。

【讨论】:

  • 看起来 IIS7 正在运行。
猜你喜欢
相关资源
最近更新 更多
热门标签