在Azure Web App上使用ASP.Net Core在容器上配置AppSettings:冒号冒号?

Joh*_*lly 8 azure azure-web-sites docker

考虑一下appsettings.json

{
  "Parent": {
    "ChildOne": "C1 from secrets.json",
    "ChildTwo": "C2 from secrets.json"
  }
}
Run Code Online (Sandbox Code Playgroud)

根据Microsoft(https://blogs.msdn.microsoft.com/waws/2018/06/12/asp-net-core-settings-for-azure-app-service/)的说明,是否已部署使用此配置的应用程序到Azure中的AppService,可以通过在Azure中以样式Parent:ChildOne/ 创建应用程序设置来覆盖配置Parent:ChildTwo。需要明确的是:使用冒号来定位特定的配置。

使用标准AppService可以正常工作:

冒号在Azure应用服务上很好

但是,如果您使用Web App for Containers /即将Docker映像部署到Linux上的Azure App Service(https://docs.microsoft.com/zh-cn/azure/app-service/containers/app-service -linux-intro),您不能使用冒号:

在适用于Linux的Azure App Service上冒号不适合

为什么?

将鼠标悬停在错误上时,您会看到以下消息:This field can only contain letters, numbers (0-9), periods ("."), and underscores ("_")。使用.不起作用las。

您如何Parent:ChildOne在Azure中配置说?Parent.ChildOne不起作用。有人可以建议吗?我找不到关于此的任何文档。

Joh*_*lly 15

经过比我想承认的更多的实验,我认为我有答案。

:App Service上使用的地方,请在__带有容器的App Service上使用(双下划线)。

所以Parent__ChildOne代替Parent:ChildOne

  • 太棒了,这有帮助!我想补充一点,对于我们来说,Linux 部分很重要。将相同的 dotnet core (3.1 LTS) API 部署到 Windows 应用服务计划可以使用“Parent:ChildOne”(门户允许这样做),但在 Linux 应用服务计划上,它必须是“Parent__ChildOne”。 (4认同)