ASP.NET MVC区域在本地服务器上运行,而不在Azure上运行

时间:2015-04-16 08:28:25

标签: asp.net asp.net-mvc azure asp.net-mvc-routing asp.net-mvc-areas

我有一个用于admin的ASP.NET MVC区域,这是AdminAreaRegistration.cs中的代码

    public override void RegisterArea(AreaRegistrationContext context) 
    {
        context.MapRoute(
            "Admin_default",
            "myadmin/{controller}/{action}/{id}",
            new { action = "Index", id = UrlParameter.Optional }
        );
    }

在Visual Studio中进行测试时,本地问题永远不会成功加载。

现在我已经将网站发布到Azure,并且管理区域没有加载到生产服务器上,我收到此错误。

  

路径控制器' / myadmin /'未找到或未实现IController。

区号是在我的主项目中,我在Azure上验证它是.dll,所以我不认为Azure缺少文件。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您是否将AreaRegistration.RegisterAllAreas();添加到Global.asax?

区域名称必须覆盖当前名称,例如:

public class AdminAreaRegistration : AreaRegistration
{
    public override string AreaName
    {
        get
        {
            return "myadmin";
        }
    }

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Admin_default",
            "myadmin/{controller}/{action}/{id}",
            new { controller = "Admin", action = "Index", id = UrlParameter.Optional },
            new[] { "Admin.Controllers" }
        );
    }
}

答案 1 :(得分:1)

好吧,这真是微不足道,我愚蠢到在我的浏览器中键入错误的路径。 : - /

/myadmin/路径也从未在本地工作过。我一直在使用/myadmin/home,但我没有注意到因为它已被加入书签。 /myadmin/home也可以在Azure上加载而不会出现任何问题。