c# - 如何同时更新 32 位和 64 位 machine.config

标签 c# .net .net-4.5 32bit-64bit machine.config

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

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

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

我们优先将我们的一个配置放入 .net machine.config 中。我当前的任务是编写一个基本的 win-forms UI 以使用我们的配置更新 machine.config。

但是,默认情况下,使用

打开机器配置
config = System.Configuration.ConfigurationManager.OpenMachineConfiguration();

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

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

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

或者有更好的方法吗?

最佳答案

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

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

关于c# - 如何同时更新 32 位和 64 位 machine.config,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19838980/

相关文章:

c# - 蛋糕构建 : access original command line arguments string?

c# - 当 header 包含非 ascii 内容时,System.Net.Browser.ClientHttpWebRequest.EndGetResponse 抛出 System.ArgumentException

c# - 插入新记录时 MySQL 的 Subsonic 3.0.0.4 ActiveRecord 模板错误

.net - RSACryptoServiceProvider.ExportCspBlob 数据格式

c# - 使用 DataContractJsonSerializer 将 JSON 反序列化为字典

c# - visual studio 2010 express 和 2012 express 打开c#项目的区别

c# - 无法在 datagridview 单元格中显示完整图像

c# - 为什么空委托(delegate)事件处理程序会导致 CA1061 警告?

c# - 在 SignalR 2.0 OnReceived 处理程序中调用 await 的正确方法

.net - MySQL .NET 连接器 - 获取该列所属的表?