.净核心3.1应用程序使用环境变量的运行。并回退到若.json当的环境变量,不集

0

的问题

我想得到我。净核心3.1应用程序使用环境变量时运行和回退。 appsettings.json 当时的环境变量,不集在那里。

我用这个我的 ConfigureServices 方法在启动文件

var configuration = new ConfigurationBuilder()
                                    .AddEnvironmentVariables()
                                    .Build();
var dbname = configuration.GetSection("DB_NAME").Value;

appsettings.json 文件具有这个

{
    "AppSettings": {
        "Data": {
            "DB_NAME":"test_db"
        }
    }
}

我设置的环境变量使用的以下命令,该命令提示。

setx DB_NAME ="Kube_test_db"

当我运行的应用程序,在Visual Studio,我得到的数据库名称 Kube_test_db. 当我删除的用户环境,可变Windows10系统的设置和运行的应用程序,再次在Visual Studio,这条线返回空。

var dbname = configuration.GetSection("DB_NAME").Value;

什么我错过来得到的价值回落到什么样的定义 appsettings.json 文件?

1

最好的答案

0

使用 .AddJsonFile.

做你打电话之前 .AddEnvironmentVariables(). 像这样:

        new ConfigurationBuilder()
            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
            .AddEnvironmentVariables()
            .Build();
2021-11-26 17:49:28

我不得到hostingEnvironment在配置的方法在这里我需要它。 此外,我将需要改变 var dbname = configuration.GetSection("DB_NAME").Value;var dbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value; 获得价值从若.手机中。 这不符合环境变量,它是唯 DB_NAME. 如果我把环境可变因 Appsettings:Data:DB_NAME 和运行代码 dbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value; 然后我仍然能获得的价值从若.json而不是从环境。
user20358

使用 __ (2下划线)作为分隔对于 设定 的环境变量: docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/...
omajid

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................