繁体   English   中英

如何在Azure中使用.NetCore 2.0中的WebAPI上的应用程序设置

[英]How to use Application Settings in Azure on a WebAPI in .NetCore 2.0

我有一个WebAPI,我将在Azure上发布它。 我在我的应用程序上使用.Net Core 2.0。

我有一个名为appsettings.json的文件,它具有以下配置:

{
  "Logging": {
    "IncludeScopes": false,
    "Debug": {
      "LogLevel": {
        "Default": "Warning"
      }
    },
    "Console": {
          "LogLevel": {
        "Default": "Warning"
      }
    }
  },
  "AppConfiguration": {
    "MyVariable": false,
  }
...
}

在我的应用程序中,在localhost中运行,我可以从“MyVariable”获取值。

当我将它发布到Azure时,我也可以从“MyVariable”中获取值。

但是,当我转到我的Azure应用程序的应用程序设置时,我将“MyVariable”设置为“true”,但我的应用程序不断获取值“false”。

总而言之,我无法从appsettings.json获取Azure的价值。

我尝试在Azure上使用以下键值:

AppConfiguration:MyVariable - true

MyVariable - true

他们都没有工作。

任何人都可以帮助我如何从Azure应用程序设置中获取价值?

编辑1我的程序类:

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
               .ConfigureAppConfiguration(
                    (WebHostBuilderContext context, IConfigurationBuilder builder) =>
                    {
                        builder.Sources.Clear();

                        builder
                            .AddEnvironmentVariables()
                            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
                    })
            .UseApplicationInsights()
            .UseStartup<Startup>()
            .Build();

设置源的顺序很重要。 改变这个:

builder
    .AddEnvironmentVariables()
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);

对此:

builder
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
    .AddEnvironmentVariables();

使Azure环境中的设置覆盖设置文件中的设置。

在Net Core 2.o或更高版本中,订单很重要。 如果你在这里查看你可以看到订单:

典型的配置提供程序序列是:

  1. 文件(appsettings.json,appsettings..json,应用程序当前的托管环境在哪里)
  2. 用户机密(秘密管理员)(仅限开发环境)
  3. 环境变量
  4. 命令行参数

因此,您必须将.AddEnvironmentVariables()更改为:

 builder
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
 .AddEnvironmentVariables();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM