yar*_*arg 13 connection-string azure staging azure-web-sites
(1)我们使用Sql Server(Web Edition)在Azure Web站点上运行Web应用程序.该应用程序包括两个连接字符串
DefaultConnection - 正常连接字符串,格式为
Server=tcp:{my-sql-server}.database.windows.net,1433;Database=...
).
EFConnection - 实体框架连接字符串.由于我使用EF设计师(并喜欢它),我需要使用形式的连接字符串metadata=res://*/Models.EDM...
(2)我把连接字符串放在web.config
; 这是"元数据..."(EF)连接字符串被接受的唯一方式(当尝试在Azure网站的控制面板中输入这些连接字符串时,我遇到了各种奇怪的错误).
一切都很好.
(3)接下来,我在我们的网站上添加了一个临时插槽来执行分阶段开发,如Microsoft Azure网站上的分阶段部署中所述
分阶段的网站工作正常.我为它创建了一个不同的Sql Server,并以与生产站点相同的方式设置其连接字符串(即在web.config中).我处理不同的web.config
使用web.config Transformations
.(我有另外两个转换 - 用于开发/调试和本地部署/发布)
问题:现在我有一个生产+暂存网站,我尝试做交换.交换效果很好,引入站点的任何更改都会交换到生产中.
但是,交换还从登台站点获取连接字符串,将生产连接到登台数据库.
*这是一个已知的错误?有解决方法吗? (现在我需要在QA测试分阶段网站后直接部署到生产网站 - 这意味着我们网站的停机时间,并且安静地挫败了整个练习的目的)
Lea*_*mes 11
应用程序设置和连接字符串对于插槽并不是粘性的,并且在交换时将保留在网站上,但我们可以使用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")
Run Code Online (Sandbox Code Playgroud)
此命令将2个连接字符串设置为插槽的粘性(遵循上述相同的原理):
Set-AzureWebsite -Name mysite -SlotStickyConnectionStringNames @("myconn", "myconn2")
Run Code Online (Sandbox Code Playgroud)
粘贴到插槽配置是网站范围的配置,并影响该网站中的所有插槽.
编辑:
正如Jeff Treuting在下面的评论中所指出的那样,现在新门户网站有一个"Slot setting"复选框,你可以选择去:
"网络应用程序" - >选择您的网络应用程序 - >"设置" - >"应用程序设置".
暂存环境是一种生产交换模式,允许您在将网站与当前生产系统交换之前完全执行网站升级。它还提供回滚机制,以防升级出现问题。
对于使用这个术语来表示尽可能接近生产的 QA 环境的公司来说,“Staging”这个词可能有点误导。在 Microsoft Azure 中,暂存环境是一个预生产概念,允许您预先配置和测试网站的升级。
QA 环境应该有自己的环境。
归档时间: |
|
查看次数: |
4490 次 |
最近记录: |