0

网络核心应用。我的 appsettings.json 如下所示。

{
  "AzureAd": {
    "Authority": "https://login.microsoftonline.com/",
    "TenantId": "mytenantid",
    "ClientId": "myclientid"
  },
  "ApplicationInsights": {
    "InstrumentationKey": "myinstrumentationkey"
  },
  "EnableSwagger":"true"
}

我将我的应用程序部署到 azure app 服务。我在应用服务计划中有以下应用设置。

AzureAd:Authority
AzureAd:ClientId
AzureAd:TenantId
ApplicationInsights:InstrumentationKey
EnableSwagger

我面临的问题是,每当我将应用程序部署到天蓝色应用服务时,只有从应用服务配置到 appsettings.json 的 EnableSwagger 值。所以 Key:Value 类型的配置工作正常。嵌套对象键的问题,例如

"AzureAd": {
        "Authority": "https://login.microsoftonline.com/"
           }

此值不会从应用服务配置应用设置覆盖到我的应用程序 appsettings.json。但是我只有 "Key":"Value" 它的压倒一切。我花了整整一天,无法弄清楚这个问题。我也尝试将 appservice 配置更改为低于 syntex,因为它是 Linux。AzureAd:Authority 我替换了:用__(双下划线)这对我也有用吗?此外,仅当我通过发布管道部署应用程序时才会发生这种情况。如果我通过右键单击解决方案并配置应用服务并单击发布来手动部署。有用。我在发布管道中面临的唯一问题。有人可以提出一些想法来解决这个问题吗?任何帮助都非常感谢。谢谢

4

1 回答 1

2

如果要覆盖 azure 应用服务的应用设置。您可以在发布管道中使用azure 应用部署任务的应用设置字段。

1,首先您可以在发布管道变量选项卡中定义变量来保存应用程序设置。见下文:

在此处输入图像描述

2、然后可以覆盖Azure App Service部署任务中的app设置。

转到应用程序和配置设置->应用程序设置->单击3点->添加键值。(您可以通过将变量名称包装在中来引用变量$(),或者您可以只设置值而不定义变量选项卡中的变量。)

在此处输入图像描述

部署发布后。应覆盖应用服务计划中的应用设置。

于 2020-07-20T09:31:35.000 回答