gpt4 book ai didi

azure - 执行 Azure 网站临时交换时连接字符串被替换

转载 作者:行者123 更新时间:2023-12-03 19:09:01 25 4
gpt4 key购买 nike

(1) 我们有一个使用 Sql Server(Web 版)在 Azure 网站上运行的 Web 应用程序。该应用程序包含两个连接字符串:

  • DefaultConnection - 普通连接字符串,形式为Server=tcp:{my-sql-server}.database.windows.net,1433;Database=...)。

  • EFConnection - Entity Framework 连接字符串。因为我正在使用EF 设计器(并且喜欢它)我需要在metadata=res://*/Models.EDM... 的形式

(2) 我已将连接字符串放入 web.config 中;这是接受“元数据...”(EF) 连接字符串的唯一方法(当尝试在 Azure 网站的控制面板中输入这些连接字符串时,我遇到了各种奇怪的错误)。

一切都很好。

(3) 接下来,我在我们的网站上添加了一个暂存槽以执行暂存开发,如 Staged Deployment on Microsoft Azure Web Sites 中所述。

分阶段站点运行良好。我为它创建了一个不同的 Sql Server,并以与生产站点中相同的方式设置其连接字符串(即在 web.config 中)。我使用 web.config 转换 处理不同的 web.config。 (我还有另外 2 个转换 - 用于开发/调试和本地部署/发布)

<小时/>

问题:现在我有了一个生产+临时站点,我尝试进行交换。交换效果很好,对暂存站点进行的任何更改都会交换到生产站点。

但是,交换还会从临时站点获取连接字符串,将生产连接到临时数据库。

*这是一个已知的错误吗?有解决方法吗? (目前,一旦 QA 测试了暂存站点,我就需要直接部署到生产站点 - 这意味着我们的站点需要停机,而安静则违背了整个过程的目的练习)

最佳答案

应用程序设置和连接字符串不会粘在插槽上,并且在交换时将保留在网站上,但我们可以使用 PowerShell 命令配置选定的应用程序设置和连接字符串以粘在插槽上(Azure 门户尚不支持) )。

在 Azure PowerShell 中使用此命令将 2 个应用设置设置为粘连到插槽:

/* If you have one config */
Set-AzureWebsite -Name mysite -SlotStickyAppSettingNames @("myslot")

/* If you have more than one */
Set-AzureWebsite -Name mysite -SlotStickyAppSettingNames @("myslot", "myslot2")

此命令将 2 个连接字符串设置为粘连到插槽(遵循上面描述的相同原理):

Set-AzureWebsite -Name mysite -SlotStickyConnectionStringNames @("myconn", "myconn2")

粘性插槽配置是网站范围的配置,并影响该网站中的所有插槽。

编辑:

正如 Jeff Treuting 在下面的评论中指出的那样,现在新门户有一个“插槽设置”复选框,您可以选择它来:

“网络应用程序”-> 选择您的网络应用程序->“设置”->“应用程序设置”。 Azure Portal Image

关于azure - 执行 Azure 网站临时交换时连接字符串被替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24186809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com