我尝试将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 App Service"发布任务。
答案 0 :(得分:32)
我遇到了类似的问题(问题出在PostgreSQL连接字符串类型,我不得不将其更改为自定义)现在它适用于我,所以这些是件:
以下评论中的其他信息:
Azure GUI(连接字符串,应用程序设置)在内部使用环境变量,因此appsettings.json将保持不变。
如果需要在VSTS发布期间覆盖 appsettings.json的值活动(在将其发布到Azure之前),Colin的ALM Corner Build &安培;可以使用发布工具。以下是指向Colin's ALM Corner Build & Release Tools和tutorial的链接。
答案 1 :(得分:5)
感谢@pasul,非常感谢您的帮助,并帮助我找到了另一种解决方案。为了使用VSTS任务进行部署并替换应用程序设置,您需要向发布任务添加变量,并将有问题的json文件传递给任务以进行变量替换。
在"部署Azure App Service"发布任务你应该看到"文件转换和变量替换"部分。在这里,您将提供要交换变量值的json文件的路径。
然后,您需要单击发布环境中的选项按钮。您将在弹出菜单中看到配置变量的选项。
从这里,您可以将要修改的json属性添加为变量。在我的情况下连接字符串。这将如下所示:
" ConnectionStrings.DefaultConnection"
然后只需输入您的连接字符串值即可。然后,VSTS将在部署时为您换出这些值。