Art*_*ino 2 c# asp.net appsettings azure asp.net-core-2.0
我有一个WebAPI,我将在Azure上发布它.我在我的应用程序上使用.Net Core 2.0.
我有一个名为appsettings.json的文件,它具有以下配置:
{
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
}
},
"AppConfiguration": {
"MyVariable": false,
}
...
}
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,在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();
Run Code Online (Sandbox Code Playgroud)
设置源的顺序很重要.改变这个:
builder
.AddEnvironmentVariables()
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
Run Code Online (Sandbox Code Playgroud)
对此:
builder
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables();
Run Code Online (Sandbox Code Playgroud)
使Azure环境中的设置覆盖设置文件中的设置.
| 归档时间: |
|
| 查看次数: |
982 次 |
| 最近记录: |