暂存环境没有采用正确的连接字符串Asp.Net Core

时间:2016-03-16 09:34:46

标签: environment-variables asp.net-core-mvc appsettings

暂存环境不会使用正确的连接字符串。

我有三个环境。发展,分期和发布。 我的appsettings看起来像这样:

{
 "Data": {
  "DefaultConnection": {
  "ConnectionString": "My connection string"
}
},
 "Logging": {
  "IncludeScopes": false,
  "LogLevel": {
  "Default": "Verbose",
  "System": "Information",
  "Microsoft": "Information"
  }
 }
}

我还有两个文件名为appsettings.Staging.json& appsettings.Release.json。 在项目属性下,我制作了两个配置文件:Staging&发布女巫都有一个托管:环境,其中包括暂存中的值暂存和发布中的释放。它在VS中运行良好但是当我将其上传到Azure时,它总是采用我的localhost连接字符串而不是我的在线数据库的默认appsettings。 我究竟做错了什么?

1 个答案:

答案 0 :(得分:2)

如果连接字符串在文本文件中包含敏感数据,则不应存储连接字符串,并且应该直接在Azure中设置值以供生产(或查看类似Key Vault之类的内容)以设置值。我建议您阅读https://docs.asp.net/en/latest/security/app-secrets.htmlhttps://docs.asp.net/en/latest/fundamentals/configuration.html

要解决从正确设置文件中读取值的问题,请参阅下文。

您需要在Azure中设置环境值。在Azure门户中,在您的WebApp上转到All Settings->Application Settings->AppSettings并添加ASPNET_ENVHosting:Environment设置,其值为Staging(或您感兴趣的任何其他环境。< / p>

要阅读appsettings.Staging.json文件,您可以执行以下操作: set staging environment