Azure 应用程序设置未覆盖我的 appsettings.json 文件值
Azure Application Settings not overriding my appsettings.json file values
我已尝试将 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 持续交付和 "Deploy Azure App Service" 发布任务进行发布。
我刚刚遇到了类似的问题(问题出在 PostgreSQL 连接字符串类型上,我不得不将其更改为自定义),现在它对我有用,所以这些是:
- 这是我的 appsettings.json 文件。我在 appsettings.Development.json 中设置了 'Psql' 的值,但在 appsettings.json 中它是空的。
- 这些是在 Azure 门户中设置的设置。请注意,有两种方法可以覆盖连接字符串。
- 这是我的 Startup.cs 文件的一部分。请注意 Startup 构造函数中设置的应用顺序以及我在 ConfigureServices 方法中获取连接字符串的方式(GetConnectionString 是标准扩展方法)。
来自我以下评论的附加信息:
Azure GUI(连接字符串、应用程序设置)在内部使用环境变量,因此 appsettings.json 将保持不变。
如果需要在 VSTS 发布期间覆盖 appsettings.json 的值 activity(在发布到 Azure 之前) , 可以使用 Colin 的 ALM Corner Build & Release Tools。这是 Colin's ALM Corner Build & Release Tools and tutorial.
的链接
感谢@pasul,非常感谢你的帮助,并帮助我找到了替代解决方案。为了使用 VSTS 任务进行部署并替换应用程序设置,您需要将变量添加到发布任务并将有问题的 json 文件传递到任务中以进行变量替换。
在 "Deploy Azure App Service" 发布任务中,您应该会看到 "File Transforms and Variable Substitution" 部分。在这里,您将提供要交换变量值的 json 文件的路径。
然后您需要单击发布环境上的选项按钮。您将在弹出菜单中看到配置变量的选项。
从这里您可以添加要修改的 json 属性 作为变量。在我的例子中是连接字符串。如下所示:
"ConnectionStrings.DefaultConnection"
然后只需输入您的连接字符串值。然后 VSTS 将在部署时为您换出这些值。
我已尝试将 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 持续交付和 "Deploy Azure App Service" 发布任务进行发布。
我刚刚遇到了类似的问题(问题出在 PostgreSQL 连接字符串类型上,我不得不将其更改为自定义),现在它对我有用,所以这些是:
- 这是我的 appsettings.json 文件。我在 appsettings.Development.json 中设置了 'Psql' 的值,但在 appsettings.json 中它是空的。
- 这些是在 Azure 门户中设置的设置。请注意,有两种方法可以覆盖连接字符串。
- 这是我的 Startup.cs 文件的一部分。请注意 Startup 构造函数中设置的应用顺序以及我在 ConfigureServices 方法中获取连接字符串的方式(GetConnectionString 是标准扩展方法)。
来自我以下评论的附加信息:
Azure GUI(连接字符串、应用程序设置)在内部使用环境变量,因此 appsettings.json 将保持不变。
如果需要在 VSTS 发布期间覆盖 appsettings.json 的值 activity(在发布到 Azure 之前) , 可以使用 Colin 的 ALM Corner Build & Release Tools。这是 Colin's ALM Corner Build & Release Tools and tutorial.
的链接感谢@pasul,非常感谢你的帮助,并帮助我找到了替代解决方案。为了使用 VSTS 任务进行部署并替换应用程序设置,您需要将变量添加到发布任务并将有问题的 json 文件传递到任务中以进行变量替换。
在 "Deploy Azure App Service" 发布任务中,您应该会看到 "File Transforms and Variable Substitution" 部分。在这里,您将提供要交换变量值的 json 文件的路径。
然后您需要单击发布环境上的选项按钮。您将在弹出菜单中看到配置变量的选项。
从这里您可以添加要修改的 json 属性 作为变量。在我的例子中是连接字符串。如下所示:
"ConnectionStrings.DefaultConnection"
然后只需输入您的连接字符串值。然后 VSTS 将在部署时为您换出这些值。