3

我们的解决方案是一套可以在一台机器上运行或完全分布式的 Windows 和 Web 服务。

我们只需要一个配置就可以将所有这些连接在一起(它恰好是一个 RabbitMq 端点,但这并不重要)。

我们的一些服务需要作为 32 位应用程序运行,一些 Web 服务将在 32 位应用程序池中运行,因此我们混合了运行 64 位和 32 位的进程,通常在同一台机器上。

根据偏好,我们会将我们的一个配置放入 .net machine.config 中。我目前的任务是编写一个简单的 win-forms UI 来使用我们的配置更新 machine.config。

但是,默认情况下,打开机器配置

config = System.Configuration.ConfigurationManager.OpenMachineConfiguration();

打开与正在运行的 UI 的 bit-edness 关联的 machine.config,但是我需要使用相同的 value 更新 32 位和 64 位机器配置文件

是否有已知且安全的方法来执行此操作?

我的第一直觉是有一个控制台应用程序,UI 可以调用它来进行实际更新,并且有 2 种不同的风格,一种 32 位和一种 64 位。

还是有更好的方法来做到这一点?

4

1 回答 1

2

我认为您应该能够使用OpenMappedMachineConfigurationConfigurationManager 上的方法打开特定的机器配置文件。

var path = "path to desired machine config";
ConfigurationFileMap cfm = new ConfigurationFileMap(path);
Configuration config = ConfigurationManager.OpenMappedMachineConfiguration(cfm);

可以在此处找到有关该方法的更多信息:http: //msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.openmappedmachineconfiguration (v=vs.110).aspx

于 2013-11-07T15:39:49.970 回答