ASP.NET核心(最新) - appsettings.json ConnectionString不在Azure上重写
问题描述:
我正在玩一个小的ASP.NET Core 1.1我已经发布的应用程序。现在,我遵循documentation关于使用appsettings * .json和环境变量。所以,我有以下几点:ASP.NET核心(最新) - appsettings.json ConnectionString不在Azure上重写
appsettings.json
appsettings.Development.json
每个的AppSettings *以.json文件有一个合适的"ConnectionStrings:"
部分:
"ConnectionStrings": {
"IdeasDatabase": "Server=tcp:adb.database.windows.net,1433;Initial Catalog=db;Persist Security Info=False;User ID=a_user;Password=apwd;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
}
所以,当我发布到开始天青,我用了一个默认的连接(这是错误的我知道),现在这是显示在我的应用程序的Azure远程设置:
上述连接字符串被填充上我第一次在这个屏幕发布(发布向导):
现在我的生产应用程序似乎使用在上面的图片此设置,并没有采取从我的appsettings.json
连接字符串部分设置。
我appsetting.json
文件存在于Azure的应用服务:
我知道我可以覆盖在发布向导TOT正确的字符串,数据库连接字符串,但不应采取Azure的连接字符串首先来自我的appsettings.json
文件,这与将文件存储在Azure中的位置不同。
答
使用环境变量或其他安全机制。将生产连接字符串存储在文件中是不安全的。
哦,我的眩晕阿姨 - 为什么我没有尝试过!我推测在配置生成器中会出现“覆盖天蓝色”标志,我完全忽略了“删除”按钮。 – garfbradaz
环境获胜有一个很好的理由,敏感数据不应该存储在.JSON文件 – RickAndMSFT
@RickAndMSFT因此,我们现在要说的是,用于生产(在向导中)的Publish命令用于connstring并为我们的测试使用Development,Staging变量实例(链接到适当的appsetting * .json文件)? – garfbradaz