Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.0k views
in Technique[技术] by (71.8m points)

azure web app service - How do we use CloudConfigurationManager with asp.net 5 JSON configs?

Asp.net 5 has a new configuration system which utilizes json files for settings. You have to manually select the json file you want loaded as your configuration with the .AddJsonFile(string fileName) method of the new Configuration class.

Meanwhile, in Azure land we've got this nifty CloudConfigurationManager class which is supposed to handle grabbing settings from the Azure Website settings or the active web.config if a Azure setting is not found.

But how are these two things intended to work together? I'm having trouble finding any documentation. I'd like to manage my settings in Azure for production but use the config.json for local debugging. I've had a great deal of trouble finding any examples or documentation.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Well, it turns out that when it comes to using CloudConfigurationManager with asp.net 5, the answer is that you don't, and the boilerplate code already covered it. (Thanks to Scott Hanselman for getting back to me on twitter)

So the standard approach is something like this:

IConfiguration configuration = new Configuration()
  .AddJsonFile("config.json") // adds settings from the config.json file
  .AddEnvironmentVariables(); // adds settings from the Azure WebSite config

The order in which these are called means that settings from the environment variables will over-write settings from the local config. All you have to do to make use of this is make sure the Azure settings will mimic your Json settings- so if your json file looks like

{
  "AppSettings": {
    "ConnectionString": "blahblahblah"
  }
}

You'd want to set up your setting in azure to look like

Key: AppSettings:ConnectionString 
Value: blahblahblah

, and then you can go ahead and use the exact same code you'd use for the local config.

var connectionString = Configuration.Get("AppSettings:ConnectionString");

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...