IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

Fichier de configuration externe


Sujet :

Dotnet

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 62
    Points : 50
    Points
    50
    Par défaut Fichier de configuration externe
    Bonjour,
    Je sais qu'il est possible de faire une référencé vers un autre fichier de config pour sortir par exemple les chaines de connexion comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <configuration>
      <connectionStrings configSource="Config/connections.config" />
      <appSettings configSource="Config/appSettings.config" />
    </configuration>
    Cependant, dans le cas ci dessous, les fichier de configuration doivent etre dans le projet lui même (a la racine ou dans un sous repertoire)


    J'aimerai mettre en place ce système mais en pointant vers un chemin réseau comme suit mais cela ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <configuration>
      <connectionStrings configSource="\\MonServeurTest\Config\connections.config" />
      <appSettings configSource="\\MonServeurTest\Config\appSettings.config" />
    </configuration>
    Existe t 'il un moyen de faire cela ?
    Je sèche !

    Merci par avance de votre aide !

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    as-tu essayé en passant par un lecteur réseau monté ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 62
    Points : 50
    Points
    50
    Par défaut
    <connectionStrings configSource="c:/Config/connectionStrings.config" />
    L'application ne se lance même pas : Une exception non gérée du type 'System.TypeInitializationException' s'est produite dans PresentationFramework.dll

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Arf, je viens de chercher sur le forum Crosoft et apparemment :

    Citation Envoyé par Shai Kariv - MSFTMicrosoft (MSFT)
    [..] The external file must be in a relative physical path [..]
    (source)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 62
    Points : 50
    Points
    50
    Par défaut
    Cela ne m'arrange pas... faut que je creuse pour trouver une solution a ma problematique.. avoir une fichier regroupant la config de toutes mes applications
    merci pour le liens ! dans ce poste, la personne est confronté exactement a la même problématique que moi !

  6. #6
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Les fichiers de config' sont très pratiques, avec toutes les fonctionnalités qui vont bien, mais c'est pas difficile de monter une solution maison pour un projet spécifique
    Il faudra par contre repasser sur tout ton code pour attaquer les info depuis ton homebrew plutôt que par les fonctions de base.

  7. #7
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 905
    Points : 1 923
    Points
    1 923
    Par défaut
    Apparemment on peut charger dynamiquement des fichiers distants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ConfigurationFileMap fileMap = new ConfigurationFileMap(strConfigPath); 
    Configuration configuration = ConfigurationManager.OpenMappedMachineConfiguration(fileMap);
    J'ai trouvé ces deux lignes dans ce post : https://social.msdn.microsoft.com/Fo...forum=netfxbcl
    Avec plusieurs liens vers des références :
    http://www.codeproject.com/KB/cs/loadIniFiles.aspx
    http://stackoverflow.com/questions/4...trary-location
    http://stackoverflow.com/questions/1...ogrammatically

  8. #8
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Du coup t'es arrivé à tes fins ? Si oui note le sujet comme résolu : si quelqu'un se pose la même question il saura qu'ici il y a la réponse

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 62
    Points : 50
    Points
    50
    Par défaut
    avec toutes ces reponse j'ai trouvé une solution à ma problématique :
    Uniquement dans mes application en paramettre le chenim vers le fichier de config global (_PathConfiguration ici)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    //_PathConfiguration 
      private  Configuration GetFileConfig()
            {
                ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
                configMap.ExeConfigFilename = _PathConfiguration;
                Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
                return config;
            }
     
     public  string GetAppSettings(string param)
            {
                Configuration config = GetFileConfig();
                var xDoc = new XmlDocument();
                var nameValueColl = new Dictionary<string, string>();
                string xml = config.GetSection("appSettings").SectionInformation.GetRawXml();
                xDoc.LoadXml(xml);
                XmlNode xList = xDoc.ChildNodes[0];
                foreach (XmlNode xNodo in xList.Cast<XmlNode>().Where(xNodo => xNodo.Attributes != null))
                {
                    if (param == xNodo.Attributes[0].Value) return xNodo.Attributes[1].Value;
                }
                throw new Exception("Impossible de trouver la valeur dans le fichier de config pour " + param);
     
            }
    PAs trouvé mieux mais dans mon cas ca fonctionne !

    Encore merci !

  10. #10
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    mais il faut attention cette méthode ne marche pas toujours ,faut que le compte utilisateur qui lance l'application a tous droits sur le chemin.
    mais pour un Windows service en mode System là c'est pas possible ,parce que il a pas un compte utilisateur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de chargement de fichier de configuration externe
    Par Leelith dans le forum Framework .NET
    Réponses: 4
    Dernier message: 11/04/2013, 20h29
  2. Lire un fichier de configuration externe
    Par bouriquo92 dans le forum VB.NET
    Réponses: 4
    Dernier message: 21/04/2011, 16h05
  3. Fichiers de configuration externe à l'EAR
    Par vintz72 dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 17/02/2009, 17h28
  4. Réponses: 4
    Dernier message: 13/12/2008, 15h13
  5. Réponses: 2
    Dernier message: 20/11/2008, 17h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo