我有一个web服务,它连接到DEV / Production环境中的数据库。
我正在管理服务器的machine.config文件中的两个环境连接字符串。
例如,生产服务器中的machine.config将包含以下内容:
<add key="MyDatabase" value="productsConnString..." />
并且dev服务器machine.config将具有以下设置:
<add key="MyDatabase" value="devConnString..." />
当然,当我在代码中连接到数据库时,我正在调用ConfigurationManager.AppSettings["MyDatabase"]
并且加载了正确的连接字符串。
我是否可以在Azure环境中实现相同的抽象级别?
我阅读了一些解释有关Config转换的文章,但如果我使用它,我需要复制并粘贴连接字符串到每个应用程序(因为我不仅仅是那个WebService)。
Azure中的machine.config有替代方法吗?也许是某种订阅级别的配置文件?
谢谢!
答案 0 :(得分:4)
我会认真考虑使用云服务配置文件(假设这是一个PaaS解决方案)。它不仅允许您将应用程序部署包与配置设置分开(就像您正在做的那样),而且还使您能够“动态”调整这些更改以适应故障转移等操作。如果您采取额外的步骤来创建自己的配置提供程序,它还为您提供了一些支持这两种模型的简单方法。
答案 1 :(得分:1)
与Brent一致 - 使用Cloud Service配置文件并使用CloudConfigurationManager.GetSetting("settingsKey")
获取设置 - 如果您首先在Azure或模拟器中,则使用Cloud Service配置,如果在此处找不到密钥,则查看appSettings中的web.config文件。