none
Probleme chaine de connexion dynamique RRS feed

  • Question

  • Bonjour,

    C'est derniers temps je m'interresse à l'Entity Framework afin de créé une base de donnée vie du code first et de la gérer avec OData Services.

    Lorsque je créé ma base de données en enregistrant ma chaine de connexion dans mon fichier web.config tous ce passe bien. Seulement je cherche un moyen de pouvoir enregistrer cette chaine de connexion de façon dynamique via une interface web de configuration.

    Je me suis donc orienté vers l'utilisation de la classe WebConfigurationManager.

    Voici comment je gère mon fichier web.config :

    <connectionStrings configSource="connections.config"/>

    Et dans le fichier connections.config : 

    <connectionStrings>
      <add name="NomId"
           connectionString="Initial Catalog=NameBDD;"
           providerName="System.Data.SqlClient" />
    </connectionStrings>

    Ci dessous le code que j'ai essayé d'utiliser pour modifier mon fichier connection.config :

    ConnectionStringSettings settings = WebConfigurationManager.ConnectionStrings["NomId"];
     
                if (null != settings)
                {
                    string connectString = settings.ConnectionString;
     
                    SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectString);
     
                    builder.DataSource = dataSource;
                    builder.UserID = userName;
                    builder.Password = userPassword;
     
                try
                {
                    var configuration = WebConfigurationManager.OpenWebConfiguration("/connections.config");
                    var section = (ConnectionStringsSection)configuration.GetSection("connectionStrings");
                    section.ConnectionStrings["NomId"].ConnectionString = builderConnectionString.ToString();
                    configuration.Save(ConfigurationSaveMode.Full);
                }
                catch (Exception er)
                { 
     
                }

    Quand je lance le code en mode debug, je peut observer que la chaine de connexion est correct et qu'elle est bien enregistré au bonne endroit seulement, l'application plante à la ligne suivante : 

    configuration.Save(ConfigurationSaveMode.Full);

    J'ai alors le message d'erreur suivant :

    Impossible de créer un fichier de configuration pour l'objet Configuration demandé.

    J'ai déjà essayer diverses parade mais rien n'y fait, je ne trouve pas la bonne solution. Je me demandé si j'avais peut être loupé un moyen plus simple où je pourrai indiquer ma chaine de connexion ailleurs que dans le fichier config (dans le code par exemple) ou si j'avais raté une étape comme l'utilisation de certaine méthode ou d'une vérification.

    Voilà, si vous pouviez peut être m'aider, je ne sais plus quoi essayer. Pour dernière info, j'utilise un site classique en Asp .Net pour faire cette manipulation.

    mercredi 26 septembre 2012 09:27

Réponses

Toutes les réponses