Domanda

La nostra soluzione è una suite di Windows e servizi Web che possono essere eseguiti su una macchina o essere completamente distribuiti.

Abbiamo bisogno di solo un pezzo di configurazione per legare tutti insieme (sembra essere un endpoint di RabbitMQ ma non è importante).

Alcuni dei nostri servizi devono essere eseguiti come app a 32 bit, alcuni dei servizi Web eseguiranno in pool di app a 32 bit, quindi abbiamo un mix di processi in esecuzione come 64 e 32 bit, spesso sulla stessa macchina.

Per preferenza avremmo messo il nostro unico pezzo di configurazione in .NET Machine.config. Il mio compito attuale è quello di scrivere un'interfaccia utente di Winds Wins Bones per aggiornare la macchina.config con il nostro pezzo di configurazione.

Tuttavia, per impostazione predefinita, aprendo la configurazione della macchina con

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

Apre la macchina.Config associata alla bit-edifica dell'interfaccia utente in esecuzione, tuttavia Devo aggiornare entrambi i file di configurazione della macchina da 32 e 64 bit con lo stesso valore.

C'è un metodo noto e sicuro per farlo?

Il mio primo istinto è di avere un'app di console che l'interfaccia utente può chiamare per eseguire l'aggiornamento effettivo e avere 2 sapori diversi uno a 32 e un 64 bit.

O c'è un modo migliore per farlo?

È stato utile?

Soluzione

Penso che dovresti essere in grado di usare il OpenMappedMachineConfiguration Metodo su ConfigurationManager per aprire un file di configurazione della macchina specifica.

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

Ulteriori informazioni sul metodo sono disponibili qui:http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.openmapmachineConfiguration(v=vs.110).aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top