configuration - azure : can we check if a setting exists before trying to read it?

标签 configuration azure azure-web-roles webrole

我目前使用 RoleEnvironment.GetConfigurationSettingValue(propertyName) 来获取 WebRole 配置文件 (csdef + cscfg) 中定义的设置的值。好的,听起来不错。

如果设置存在,则此方法效果很好,但如果 csdef 和 cscfg 中未定义该设置,则失败并出现异常。

我正在将现有应用程序迁移到 Azure,该应用程序在 web.config 中有许多配置设置。在我的代码中,要读取设置值,我想测试:如果它存在于 webRole 配置(csdef + cscfg)中,我从这里读取它,否则我使用 ConfigurationManager 从 web.config 读取它。 这将阻止从我的 web.config 迁移所有设置,并允许在应用程序已部署时自定义设置。

有办法做到这一点吗?

我不想将 GetConfigurationSettingValue 封装在 try/catch 中(如果我输入 catch,则从 web.config 中读取),因为这确实是一种丑陋的方式(而且大多数情况下它的性能效率不高) !)。

谢谢!

最佳答案

1.7 Azure SDK 更新。 引入了CloudConfigurationManager类。允许单个 GetSetting 调用首先在您的 cscfg 中查找,如果未找到 key ,则返回到 web.config。

http://msdn.microsoft.com/en-us/LIBRARY/jj157248

1.7 之前的 SDK 简单的答案是否定的。 (据我所知)

更有趣的主题是将配置视为依赖项。我发现将配置设置视为依赖项是有益的,这样支持实现就可以随着时间的推移而改变。该实现可能是假的测试或更复杂的东西,例如从 .config/.cscfg 切换到 Multi-Tenancy 解决方案的数据库实现。

有了这个配置包装器,您可以将 TryGetSetting 编写为内部方法,无论您的配置选项来源是什么。当此功能添加到 RoleEnvironment 成员时,您只需更改该内部实现。

关于configuration - azure : can we check if a setting exists before trying to read it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6018138/

相关文章:

r - Sparklyr:sdf_copy_to失败,包含350 MB数据集

azure - 使用 Microsoft Graph API 更新 Azure AD 应用程序 key 或 secret - BadRequest 错误

python - Python 中的 Azure 计费 API - 空响应

c# - 模型(ASP MVC3)的命名空间在 WorkerRole 中不可见

asp.net-mvc-3 - Azure 服务总线 - 双向通信性能挑战

azure - 如果我部署两个 Azure Web 角色,是否需要设置计算 secret 钥?

java - 如何打印logback的配置信息?

VIM:如何在保存时更新文本

sql-server - 在 Azure SQL 数据库上设置 RESTRICTED_USER

c# - 有没有办法根据任意 xml 获取 System.Configuration.Configuration 实例?