(1) 我们在Azure Web Site上运行一个Web应用程序,使用Sql Server(Web Edition)。该应用程序包含两个连接字符串:
DefaultConnection - 普通连接字符串,格式为
Server=tcp:{my-sql-server}.database.windows.net,1433;Database=...
)。EFConnection - 实体框架连接字符串。由于我正在使用EF设计师(并喜欢它),所以需要使用以
metadata=res://*/Models.EDM...
形式的连接字符串
(2) 我已将连接字符串放置在web.config
中;这是接受“metadata ...”(EF)连接字符串的唯一方法(当尝试在Azure网站控制面板中输入这些连接字符串时,我得到各种奇怪的错误)。
一切都很好。
(3) 接下来,我向我们的网站添加了一个分阶段开发的分段插槽,如Microsoft Azure Web Sites上的分段部署中所述
暂存站点运行良好。我为其创建了一个不同的Sql Server,并以与生产网站相同的方式设置其连接字符串(即在web.config中)。我使用web.config Transformations
处理不同的web.config
。(我还有另外2个变换-用于开发/调试和本地部署/发布)
问题:现在我有一个生产+暂存站点,我尝试进行交换。交换运行良好,并将任何引入到暂存站点的更改交换到生产环境。
但是,交换也将连接字符串从暂存站点带出,将生产连接到了暂存数据库中。
*这是已知的错误吗?是否有解决方法?(目前,一旦QA测试了暂存站点,我需要直接部署到生产站点-这意味着我们的网站会停机,完全打败了整个练习的目的)
connectionstring
的值格式是什么?如果您知道,请添加。 - ManirajSSServer=tcp:xxxxxxxxxx.database.windows.net;Database=testDB;User ID=MyAdmin@xxxxxxxxxx;Password=pass@word1;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;MultipleActiveResultSets=true
的内容放在值文本框中吗? - ManirajSS