1

我正在玩一个小的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远程设置:

enter image description here

上述连接字符串被填充上我第一次在这个屏幕发布(发布向导):

enter image description here

现在我的生产应用程序似乎使用在上面的图片此设置,并没有采取从我的appsettings.json连接字符串部分设置。

appsetting.json文件存在于Azure的应用服务:

enter image description here

我知道我可以覆盖在发布向导TOT正确的字符串,数据库连接字符串,但不应采取Azure的连接字符串首先来自我的appsettings.json文件,这与将文件存储在Azure中的位置不同。

回答

3

现在这是表示对我的应用程序Azure的远程设置:存储环境变量

Azure的远程设置。它比appsettings.json中的配置具有更高的优先级。如果您想使用在Azure上运行时在appsettings.json中配置的设置,则可以从Azure门户或Visual Studio中删除Azure远程设置。之后,Azure Web App将使用appsettings.json中的设置。

enter image description here

+0

哦,我的眩晕阿姨 - 为什么我没有尝试过!我推测在配置生成器中会出现“覆盖天蓝色”标志,我完全忽略了“删除”按钮。 – garfbradaz

+1

环境获胜有一个很好的理由,敏感数据不应该存储在.JSON文件 – RickAndMSFT

+0

@RickAndMSFT因此,我们现在要说的是,用于生产(在向导中)的Publish命令用于connstring并为我们的测试使用Development,Staging变量实例(链接到适当的appsetting * .json文件)? – garfbradaz

0

使用环境变量或其他安全机制。将生产连接字符串存储在文件中是不安全的。