3

当社のソリューションは、Windows と Web サービスのスイートであり、すべてを 1 台のマシンで実行することも、完全に分散させることもできます。

これらすべてを結び付けるために必要な構成は 1 つだけです (たまたま RabbitMq エンドポイントですが、それは重要ではありません)。

一部のサービスは 32 ビット アプリとして実行する必要があり、一部の Web サービスは 32 ビット アプリ プールで実行されるため、多くの場合、同じマシン上で 64 ビットと 32 ビットとして実行されるプロセスが混在しています。

設定の 1 つを .net machine.config に入れることをお勧めします。私の現在のタスクは、最小限の win-forms UI を作成して、構成の一部で machine.config を更新することです。

ただし、デフォルトでは、マシン構成を開く

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

実行中の UI のビット edness に関連付けられた machine.config を開きますが、32 ビットと 64 ビットの両方のマシン構成ファイルを同じ値で更新する必要があります

これを行うための既知の安全な方法はありますか?

私の最初の本能は、UI が呼び出して実際の更新を実行できるコンソール アプリを作成し、32 ビットと 64 ビットの 2 つの異なるフレーバーを用意することです。

または、これを行うより良い方法はありますか?

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 に答える