IConfiguration 不从 appsettings.json 中检索值,而是从 Azure Key Vault 中检索值
IConfiguration does not retrieve values from appsettings.json but from Azure Key Vault
在 .NET Core 3.1 Web API 的 Program.cs 文件中,我得到以下内容:
public class Program
{
private static string _someValue;
public Program(IConfiguration configuration)
{
_someValue = configuration["SOME_VALUE"]
}
在 appsettings.json 里面我得到了:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"SOME_VALUE": "value"
}
问题是,我无法从 appsettings.json 中获取值“SOME_VALUE”。但是我在 Azure Key Vault 中获得了相同的值,并且出于某种原因它从那里获取了值。有人可以解释为什么会这样吗?
配置提供程序按特定顺序执行
在您的情况下,Azure KeyVault 将位于顶部(或者,更准确地说,它位于 AddUserSecrets 和 AddEnvironmentVariables 之间)
在代码中对配置提供程序进行排序,以适应应用所需的底层配置源的优先级,或者使用不同的变量名称
在 .NET Core 3.1 Web API 的 Program.cs 文件中,我得到以下内容:
public class Program
{
private static string _someValue;
public Program(IConfiguration configuration)
{
_someValue = configuration["SOME_VALUE"]
}
在 appsettings.json 里面我得到了:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"SOME_VALUE": "value"
}
问题是,我无法从 appsettings.json 中获取值“SOME_VALUE”。但是我在 Azure Key Vault 中获得了相同的值,并且出于某种原因它从那里获取了值。有人可以解释为什么会这样吗?
配置提供程序按特定顺序执行
在您的情况下,Azure KeyVault 将位于顶部(或者,更准确地说,它位于 AddUserSecrets 和 AddEnvironmentVariables 之间)
在代码中对配置提供程序进行排序,以适应应用所需的底层配置源的优先级,或者使用不同的变量名称