![](/img/trans.png)
[英]How to properly read nested configuration values from config.json in ASP.NET5?
[英]Overriding Configuration Values in config.json file in Azure Web App in ASP.Net 5
我有一个ASP.Net 5应用程序,其中我有一些配置值存储在config.json
文件中。 我的config.json文件是这样的。
{
"AppSettings": {
"SiteEmailAddress": "some@email.com",
"APIKey": "some_api_key"
}
}
我正在设置config.json文件,以便像这样在Startup.cs
文件中使用。
public static IConfigurationRoot Configuration;
public Startup(IApplicationEnvironment appEnv) {
var builder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
.AddJsonFile("config.json")
.AddEnvironmentVariables();
Configuration = builder.Build();
}
并访问这样的配置设置..
var email = Startup.Configuration["AppSettings:SiteEmailAddress"];
在ASP.Net早期,我们可以使用Web.Config
文件来存储这些应用程序设置,并在“Azure应用程序设置”部分的“应用程序设置”中覆盖它们,这样可以解决任何问题。 但是我怎么能在ASP.Net 5应用程序中做同样的事情。
如何覆盖Azure中“应用程序设置”部分中config.json文件中的配置值。
将它们添加为Azure中的应用程序设置,就像您以前一样。 对于嵌套配置值,请使用
AppSettings:SiteEmailAddress
等等...(AppSettings在这里指的是你在config.json中使用的,与Azure App Settings的相似性是巧合的)
像你所做的AddEnvironmentVariables()是必须的。
假设你有appsettings.json,你可以添加另一个文件appsettings。{Environment} .json,即appsettings.Production.json。 只有生产文件中定义的设置才会覆盖appsettings.json中的设置。 现在,将以下内容添加到Startup的构造函数中
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", true);
接下来,您应该去launchSettings.json,其中定义了所有服务器并将环境变量更新为Production。 例如,
"web": {
"commandName": "web",
"environmentVariables": {
"Hosting:Environment": "Production"
}
现在部署到azure。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.