Routing 在Azure上部署时,区域路由在ASP.NET核心MVC中不起作用

Routing 在Azure上部署时,区域路由在ASP.NET核心MVC中不起作用,routing,asp.net-core-mvc,azure-web-app-service,Routing,Asp.net Core Mvc,Azure Web App Service,在本地运行应用程序时,所有路由都可以正常工作。但是当发布到Azure时,只有非区域控制器工作(如“主”和“帐户”),区域路由返回404 Startup.cs具有以下功能: routes.MapRoute("areaRoute", "{area:exists}/{controller}/{action=Index}/{id?}"); project.json具有依赖性(除其他外): 和框架: "netcoreapp1.0": { "imports": [ "dotne

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

Startup.cs具有以下功能:

routes.MapRoute("areaRoute", "{area:exists}/{controller}/{action=Index}/{id?}");
project.json具有依赖性(除其他外):

和框架:

"netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
和出版选项:

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

正在通过跟踪的全球化模式存在问题。在
publish/include
部分列出各个区域可以作为一种解决方法。比如说,

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

正如Pranav的回答所指出的,这个问题似乎与出版过程中跳过的视图有关。您也可以右键单击Visual Studio中的Area/Views文件夹,如果您有急事,可以直接发布它。

通过选中所有“.cshtml”文件的“属性”窗口中设置了“生成操作:内容”,我就解决了这个问题。出于某种原因,我的Index.cshtml被设置为“buildaction:None”

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