我们如何在asp.net 5 JSON配置中使用CloudConfigurationManager?

tom*_*ich 16 azure-web-sites asp.net-core

Asp.net 5有一个新的配置系统,它利用json文件进行设置.您必须.AddJsonFile(string fileName)使用新Configuration类的方法手动选择要加载的json文件作为配置.

同时,在Azure土地上,我们有一个漂亮的CloudConfigurationManager类,它应该处理来自Azure网站设置的抓取设置,或者web.config如果找不到Azure设置则处于活动状态.

但这两件事如何协同工作呢?我找不到任何文档.我想在Azure中管理我的设置以进行生产,但是使用config.json本地调试.我在查找任何示例或文档方面遇到了很多麻烦.

tom*_*ich 23

好吧,事实证明,当使用CloudConfigurationManager和asp.net 5时,答案是你没有,并且样板代码已经涵盖了它.(感谢Scott Hanselman在推特上回复我)

所以标准方法是这样的:

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

调用它们的顺序意味着环境变量中的设置将覆盖本地配置中的设置.要做到这一点,你需要做的就是确保Azure设置会模仿你的Json设置 - 所以如果你的json文件看起来像

{
  "AppSettings": {
    "ConnectionString": "blahblahblah"
  }
}
Run Code Online (Sandbox Code Playgroud)

你想在azure中设置你的设置看起来像

Key: AppSettings:ConnectionString 
Value: blahblahblah
Run Code Online (Sandbox Code Playgroud)

,然后你可以继续使用你用于本地配置的完全相同的代码.

var connectionString = Configuration.Get("AppSettings:ConnectionString");
Run Code Online (Sandbox Code Playgroud)