Asp.net core ASP.NET核心(最新)-appsettings.json连接字符串在Azure上未覆盖
我正在玩一个我已经发布的小型ASP.NET Core 1.1应用程序。现在,我将介绍如何使用appsettings*.json和环境变量。因此,我有以下几点:Asp.net core ASP.NET核心(最新)-appsettings.json连接字符串在Azure上未覆盖,asp.net-core,connection-string,azure-web-app-service,azure-configuration,Asp.net Core,Connection String,Azure Web App Service,Azure Configuration,我正在玩一个我已经发布的小型ASP.NET Core 1.1应用程序。现在,我将介绍如何使用appsettings*.json和环境变量。因此,我有以下几点: appsettings.json appsettings.Development.json 每个appsettings*.json文件都有一个适当的连接字符串:部分: "ConnectionStrings": { "IdeasDatabase": "Server=tcp:adb.database.windows.net,14
appsettings.json
appsettings.Development.json
每个appsettings*.json文件都有一个适当的连接字符串:
部分:
"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时,我在发布设置中使用了一个默认连接字符串(我知道这是错误的),现在在Azure远程设置中显示了我的应用程序:
上述连接字符串是在我在此屏幕上首次发布时填充的(发布向导):
现在,我的生产应用程序似乎在上图中使用此设置,而不是从我的appsettings.json
connection string部分获取此设置
Azure应用程序服务上存在我的appsetting.json
文件:
我知道我可以在发布向导中将该数据库连接字符串重写为正确的字符串,但Azure不应该首先从我的appsettings.json
文件中获取连接字符串,该文件与Azure上存储该字符串的位置不同
现在,我的应用程序的Azure远程设置中显示:
Azure远程设置存储为环境变量。它的优先级高于appsettings.json中的配置。如果要在Azure上运行时使用appsettings.json中配置的设置,可以从Azure门户或Visual Studio中删除Azure远程设置。之后,Azure Web App将使用appsettings.json中的设置
使用环境变量或其他安全机制。将生产连接字符串存储在文件中是不安全的。哦,我头晕目眩的阿姨-我为什么不试试呢!我假设在我丢失的配置生成器中会有一个“override azure”标志,并且完全忽略了“Remove”按钮。环境获胜是有充分理由的,Sensive数据不应该存储在.JSON中file@RickAndMSFT因此,我们说的是用于生产的发布命令(在向导中)对于connstring并使用开发,我们的测试实例(链接到适当的appsetting*.json文件)的暂存变量@RickAndMSFT我发现了这一点,当我回家时,我会读一读这一点,而不是我为你们标记的文档(文档…)。我喜欢用漂亮的MS文档。这看起来像是对我的目的的误解,所以我将提出关于liveFyre的任何进一步的问题。再次感谢你,瑞克。