appsettings.json
環境変数を使用してファイルの設定を上書きすることはできません。
appsettings.json
:
{
"AppSettings": {
"LocalUpdatesDir": "<some path>",
"BinaryDeltaCount": 5,
"BinaryDeltaFilenameTemplate": "<template>",
"Azure": {
"User": "user here",
"Password": "password here"
}
},
}
主要:
public static void Main(string[] args)
{
var webHost = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.ConfigureAppConfiguration((hostingContext, config) =>
{
var env = hostingContext.HostingEnvironment;
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);
config.AddEnvironmentVariables();
})
.UseStartup<Startup>()
.Build();
webHost.Run();
}
環境変数:
アップデート1:
ここで、すべてのプロバイダーが登録されていることがわかります。
本当に奇妙なのは、環境変数リストに約 80 個のエントリがあることです。新しい 2 つのエントリが欠落していますが、数時間前に作成してすぐに削除した 2 つの環境変数がそこにあります。これらは一体どこから来ているのでしょうか?
アップデート2:
コンピュータを再起動すると、環境変数がリストに表示されますが、appsettings.json
?の値は上書きされません。
ベストアンサー1
環境変数からプレフィックスを削除するASPNETCORE_
か、 のパラメータとして追加しますAddEnvironmentVariables
。デフォルトではプレフィックスはありません。
編集: 構成を列挙して、キーが期待どおりに並んでいるかどうかを確認してください。
private static void ShowConfig(IConfiguration config)
{
foreach (var pair in config.GetChildren())
{
Console.WriteLine($"{pair.Path} - {pair.Value}");
ShowConfig(pair);
}
}