2

我正在玩我已发布的小型ASP.NET Core 1.1应用程序。现在我正在关注有关使用appsettings*.json和环境变量的文档。所以我有以下内容:

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 时,我在发布设置中使用了默认连接字符串(我知道这是错误的),现在这显示在我的应用程序的 Azure 远程设置中:

在此处输入图像描述

上面的连接字符串是在我在此屏幕中的第一次发布时填充的(发布向导):

在此处输入图像描述

现在我的生产应用程序似乎在使用上图中的此设置,而不是从我的appsettings.json连接字符串部分中获取设置。

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

在此处输入图像描述

我知道我可以在发布向导中覆盖该数据库连接字符串以获得正确的字符串,但 Azure 不应该首先从我​​的appsettings.json文件中获取连接字符串,这与它在 Azure 上的存储位置不同。

4

2 回答 2

3

现在这显示在我的应用程序的 Azure 远程设置中:

存储为环境变量的 Azure 远程设置。它的优先级高于 appsettings.json 中的配置。如果要在 Azure 上运行时使用 appsettings.json 中配置的设置,可以从 Azure 门户或 Visual Studio 中删除 Azure 远程设置。之后,Azure Web App 将使用 appsettings.json 中的设置。

在此处输入图像描述

于 2017-06-27T02:27:09.910 回答
2

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

于 2017-06-27T16:00:14.440 回答