86 votes

.NET Fichiers de configuration configSource en dehors de l'application du dossier

J'ai deux applications une application de console et de l'autre une ASP.NET app. Ils ont tous deux besoin de connaître le même appSettings et connectionStrings. Donc, idéalement, je voudrais utiliser le configSource propriété de l'app.config/web.les fichiers de configuration dans un emplacement central. Par exemple

<connectionStrings configSource="D:\connectionStrings.config"/>
<appSettings configSource="D:\appSettings.config"/>

Cependant, échoue avec une erreur:

Le configSource attribut n'est pas valide.: Le configSource 'D:\appSettings.config' est pas valide. Il doit se référer à un fichier dans le même répertoire ou dans un sous-répertoire que le fichier de configuration.

Est-il de toute façon à continuer à utiliser la configuration des gestionnaires de appSettings/connectionStrings et obtenir les valeurs à partir d'un emplacement externe?
Je suis heureux d'avoir à ajouter le code pour le faire, mais je ne veux pas avoir à remplacer l'ensemble du système de configuration manager.

15voto

Iain M Norman Points 1554

Il semble que c'est la façon dont il est. configSource doit être dans le même dossier ou de plus profond.

Vous pourriez, bien que je ne suis pas sûr que vous devez, utiliser un NTFS hardlink. [mad sourire]

8voto

Richard Points 54016

Vous pouvez charger la configuration à partir d'un emplacement arbitraire, mais il ne seront pas disponibles via les propriétés statiques de ConfigurationManager:

Configuration myConfig = ConfigurationManager.OpenExeConfiguration(path)

(Il y a une surcharge qui permet multuple fichiers spécifiés, à l'appui de/par défaut de l'utilisateur de services d'itinérance et de l'utilisateur-hiérarchie locale.)

Perdre les propriétés statiques signifie tout le code doit être conscient de la différence de configuration.

3voto

freggel Points 336

Vous pouvez placer les deux paramètres de la machine.config et puis ils sont disponibles pour toutes vos applications sur le serveur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X