2

我有一个连接到开发/生产环境数据库的网络服务。

我在服务器的 machine.config 文件中管理这两个环境的连接字符串。

例如,生产服务器中的 machine.config 将包含如下内容:

<add key="MyDatabase" value="productsConnString..." />

并且开发服务器 machine.config 将具有以下设置:

<add key="MyDatabase" value="devConnString..." />

自然,当我在代码中连接到数据库时,我正在调用ConfigurationManager.AppSettings["MyDatabase"]并加载正确的连接字符串。

有没有办法在 Azure 环境中实现相同的抽象级别?

我阅读了一些解释配置转换的文章,但如果我使用它,我需要将连接字符串复制并粘贴到每个应用程序(以防我拥有的不仅仅是那个 WebService)。

Azure 中是否有 machine.config 的替代方案?也许某种订阅级别的配置文件?

谢谢!!

4

2 回答 2

4

我会认真考虑使用云服务配置文件(假设这是一个 PaaS 解决方案)。它不仅允许您将应用程序部署包与配置设置分开(就像您正在做的那样),而且还使您能够“即时”调整这些更改以适应故障转移等事情。如果您采取额外的步骤来创建自己的配置提供程序,它还为您提供了一些简单的方法来支持这两种模型。

于 2013-08-22T16:33:11.440 回答
1

Concur with Brent - use the Cloud Service configuration file and get the setting with CloudConfigurationManager.GetSetting("settingsKey") - this uses the Cloud Service config if you are in Azure or the Emulator first, if the key isn't found there it also looks in the web.config file in appSettings.

于 2013-08-22T18:48:08.023 回答