从开发转移到云时,从一个连接串切换到另一个连接串

时间:2011-02-26 07:17:06

标签: azure

我正在开发云应用程序。当我在我的计算机上测试应用程序时,我希望在ServiceConfiguration.cscfg中将我的连接字符串设置如下:

<Setting name="DataConnectionString" value="UseDevelopmentStorage=true" />

当我发布到云时,我需要将其设置如下:

<Setting name="DataConnectionString" value="DefaultEndpointsProtocol=https;AccountName=xxxx;AccountKey=yyy" />

我一直在从一个环境转到另一个环境,并且不断更改DataConnectionString。

有没有办法让我自动化?我环顾四周,看不到任何例子,但我确信其他一些人和我有同样的问题。

谢谢,

南西

5 个答案:

答案 0 :(得分:4)

答案 1 :(得分:2)

虽然Igorek的方法非常有效,但我们更喜欢在我们的CI服务器上进行这种转换,它也负责自动部署。主要原因是限制对敏感数据的访问,因为只有有限数量的可信开发人员可以访问CI服务器。此外,它有助于保持我们的代码更清洁,因为它不包括冗余配置项目。在我们的例子中,我们使用Hudson-CI(Jenkins-CI)和MSBuild.ExtensionPack.FileSystem.File(替换动作)来转换配置文件。

答案 2 :(得分:0)

在获取连接字符串的代码部分中,您可以使用#if(DEGUG)预处理程序指令,以便根据编译是否Debugif(Debugger.IsAttached)来使用或不使用某些内容。 1}}(MSDN)以了解调试器是否已附加。

答案 3 :(得分:0)

如果要使用Visual Studio配置转换,请参阅my answer以查找类似的问题。

答案 4 :(得分:0)

您可以在Azure SDK 1.7 http://msdn.microsoft.com/en-us/LIBRARY/microsoft.windowsazure.cloudconfigurationmanager

中使用CloudConfigurationManager

首先查看ServiceConfiguration.cscfg,例如ServiceConfiguration.Cloud.cscfg用于配置设置。如果不存在,则会回退到web.config和app.config

例如

CloudConfigurationManager.GetSetting("StorageConnectionString")

将在相应的cscfgfile中查找StorageConnectionString设置,然后它将搜索web.config,然后搜索app.config。