Question

Notre solution est une suite de services Windows et Web qui peuvent tous fonctionner sur une seule machine ou être entièrement distribués.

Nous n'avons besoin que d'un seul élément de configuration pour lier tous ces éléments ensemble (il se trouve qu'il s'agit d'un point de terminaison RabbitMq mais ce n'est pas important).

Certains de nos services doivent s'exécuter en tant qu'applications 32 bits, certains services Web s'exécuteront dans des pools d'applications 32 bits, nous avons donc un mélange de processus exécutés en 64 et 32 ​​bits, souvent sur la même machine.

De préférence, nous placerions notre configuration unique dans le fichier machine.config .net.Ma tâche actuelle consiste à écrire une interface utilisateur de formulaires gagnants pour mettre à jour le fichier machine.config avec notre élément de configuration.

Cependant, par défaut, ouvrir la configuration de la machine avec

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

Ouvre cependant le fichier machine.config associé au bit-edness de l'interface utilisateur en cours d'exécution Je dois mettre à jour les fichiers de configuration de la machine 32 et 64 bits avec la même valeur.

Existe-t-il une méthode connue – et sûre – pour ce faire ?

Mon premier instinct est d'avoir une application console que l'interface utilisateur peut appeler pour effectuer la mise à jour réelle, et d'avoir 2 versions différentes, une 32 et une 64 bits.

Ou existe-t-il une meilleure façon de procéder ?

Était-ce utile?

La solution

Je pense que tu devrais pouvoir utiliser le OpenMappedMachineConfiguration sur ConfigurationManager pour ouvrir un fichier de configuration de machine spécifique.

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

Plus d’informations sur la méthode peuvent être trouvées ici :http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.openmappedmachineconfiguration(v=vs.110).aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top