2

我们在数据中心的不同机器上运行服务的多个实例(实现为 .exe 文件)。但是,我们希望将此 .exe 文件的配置参数存储在中央位置(而不是存储在每台机器的 .exe.config 中)。

为此,我们计划将 .exe.config 文件的内容移动到中央存储库(Active Directory 或 SQL)中的属性,并使 .exe 在从该存储库读取的所有计算机上运行。

我想重用所有用于读取/写入配置信息的现有类(使用 ConfigurationManager、ConfigurationProperty 等,基本上使用整个 .NET 配置框架) - 但是,而不是从 .exe.config 文件加载它(它确实默认情况下 - 我希望它从我将从该中央存储库中检索的 XML blob 的字符串值加载它。

我试图找到使用 ConfigurationManager API 的方法,但找不到任何可以从字符串加载配置部分的东西。任何指针?

4

2 回答 2

0

虽然我怀疑这是它的目的,但我们已经在我们的项目中使用ProtectedConfigurationProvider做到了这一点。基本上,这个类应该允许你加密你的配置文件,但我们只是让 Decrypt 方法连接到我们的数据库并返回配置信息。有关实施的说明,请参阅this。这感觉有点 hacky,但是如果不完全重写所有配置解析逻辑,我们就找不到其他方法。

于 2012-03-20T01:23:35.740 回答
0

我想您可以编写自己的ConfigurationSection,然后从中央存储库加载真实的配置数据。

或者,您是否有某种集中部署系统来在您的各种服务器上安装软件?您的服务是如何部署的?与其增加软件的复杂性,不如寻找已经解决问题的现有工具。

于 2012-03-20T01:00:30.103 回答