Azure应用程序设置不会覆盖我的appsettings.json文件值

psy*_*cho 21 appsettings azure asp.net-core

我尝试将我的appsettings.json文件中的DefaultConnection添加到Azure的应用程序设置中,但Azure不会覆盖连接字符串.

在此输入图像描述

在此输入图像描述

我能找到的任何文章或博客都指出我需要做的就是在appsettings.json文件中添加连接字符串名称,Azure应该完成剩下的工作(例如https://tehremo.wordpress.com/2016/ 10/07/override-connection-strings-app-settings-in-asp-net-core-and-azure-app-service /)然而,当应用程序发布时,它使用我的本地连接字符串.

我的Startup.cs文件如下所示:

在此输入图像描述 在此输入图像描述

注意:我使用VSTS持续交付发布"部署Azure应用服务"发布任务.

pas*_*sul 37

我只是有一个类似的问题(问题是PostgreSQL连接字符串类型,我不得不将其更改为自定义)现在它适用于我,所以这些是件:

  1. 这是我的appsettings.json文件.我在appsettings.Development.json中设置了'Psql'的值,但在appsettings.json中它保留为空. 在此输入图像描述
  2. 这些是Azure门户中设置的设置.请注意,有两种方法可以覆盖连接字符串. 在此输入图像描述
  3. 这是我的Startup.cs文件的一部分.请注意在Startup构造函数中应用设置的顺序以及我在ConfigureServices方法中获取连接字符串的方式(GetConnectionString是标准扩展方法). 在此输入图像描述

以下评论的其他信息:

Azure GUI(连接字符串,应用程序设置)在内部使用环境变量,因此appsettings.json将保持不变.

如果在VSTS发布活动期间(在将其发布到Azure之前)需要覆盖appsettings.json的值,则可以使用Colin的ALM Corner Build&Release Tools.以下是Colin的ALM Corner Build&Release Tools教程的链接.

  • 似乎已经过时了。.NET Core 已经完全不同了。 (2认同)

psy*_*cho 6

感谢@pasul,非常感谢您的帮助,并帮助我找到了替代解决方案。为了使用VSTS任务进行部署并替换应用程序设置,您需要将变量添加到发布任务中,并将有问题的json文件传递到任务中以进行变量替换。

在“部署Azure App Service”发布任务中时,应看到“文件转换和变量替换”部分。在这里,您将提供要交换变量值的json文件的路径。

在此处输入图片说明

然后,您需要在发布环境上单击选项按钮。您会在弹出菜单中看到一个配置变量的选项。

在此处输入图片说明

在这里,您可以将要修改的json属性添加为变量。就我而言,连接字符串。它将如下所示:

在此处输入图片说明

“ ConnectionStrings.DefaultConnection”

然后只需输入您的连接字符串值。然后,VSTS将在部署时为您交换这些值。