ASP.NET 核心(最新)- appsettings.json ConnectionString 未在 Azure 上覆盖

ASP.NET Core (Latest) - appsettings.json ConnectionString not overriding on Azure

我正在玩我发布的一个小型 ASP.NET Core 1.1 应用程序。现在我正在关注 documentation 关于使用 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 上。

now this is showing in Azure remote settings for the my app:

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

中的设置

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