在Azure上部署ASP.NET Core MVC时,区域路由无法正常工作

7

当在本地运行应用程序时,所有路由都正常工作。但是在发布到Azure时,只有非区域控制器(如“Home”和“Account”)可以访问,区域路由会返回404错误。

Startup.cs文件中包含以下内容:

routes.MapRoute("areaRoute", "{area:exists}/{controller}/{action=Index}/{id?}");

project.json 包含依赖项(其中包括):

"Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    }

以及框架:

"netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }

并发布选项:

"include": [
      "wwwroot",
      "Views",
      "Areas/**/Views",
      "appsettings.json",
      "web.config"
    ]
3个回答

1
通过检查所有“.cshtml”文件在属性窗口中是否设置了“Build Action:Content”,我的问题得到了解决。由于某种原因,我的Index.cshtml被设置为“Build Action:None”。

1

有一个与通配符模式相关的问题,该问题通过https://github.com/dotnet/cli/issues/3795进行跟踪。在publish/include部分列出单独的区域可以用作解决方法。例如:

"include": [
  "wwwroot",
  "Views",
  "Areas/Area1/Views",
  "Areas/Area2/Views",
  "appsettings.json",
  "web.config"
]

0
正如Pranav的回答所指出的那样,问题似乎与在发布期间跳过了视图有关。如果你很着急,你也可以在Visual Studio中右键单击Area/Views文件夹并直接进行发布。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接