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

ASP.NET MVC Area works on local server, not on Azure

我有一个 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,但管理区域未加载到生产服务器上,出现此错误。

The controller for path '/myadmin/' was not found or does not implement IController.

区号在我的主项目中,我验证它作为 .dll 存在于 Azure 上,所以我认为 Azure 没有丢失文件。

有什么想法吗?

您是否将 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" }
        );
    }
}

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

/myadmin/ 路径在本地也从未起作用。我一直在使用 /myadmin/home,但我没有注意到,因为它被添加了书签。 /myadmin/home 在 Azure 上加载也没有任何问题。