248 votes

Le système de configuration n'a pas réussi à s'initialiser

Je suis nouveau dans Visual Studio. Je suis en train de créer un formulaire de connexion.

J'ai ce code.

string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
try
{
    using (OdbcConnection connect = new OdbcConnection(connectionString))
    {
        connect.Open();
        OdbcCommand cmd = new OdbcCommand("SELECT username, password FROM receptionist", connect);
        OdbcDataReader reader = cmd.ExecuteReader();

        if (username_login.Text == username && password_login.Text == password)
        {
            this.Hide();
            MessageBox.Show("Invalid User", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            this.Close();
        }
        else 
            MessageBox.Show("Invalid User", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        connect.Close();
    }
}
catch (OdbcException ex)
{
    MessageBox.Show(ex.Message, "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

Mais lorsque j'essaie de taper le nom d'utilisateur et le mot de passe, il y a une erreur appelée Le système de configuration n'a pas réussi à s'initialiser . Je me demande juste de quel genre de problème il s'agit et comment je pourrais le résoudre ?

Aidez-moi, s'il vous plaît.

2 votes

Un autre scénario - Si vous recherchez ConfigurationManager.Appsettings[""], assurez-vous que le <appSettings> est présent dans la configuration. Sinon, vous obtiendrez cette exception

1 votes

Cela peut également se produire si vous avez deux emplacements pour les paramètres d'application.

414voto

feluco79 Points 1486

Assurez-vous que votre fichier de configuration (web.config si web, ou app.config si Windows) dans votre projet commence comme :

<?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="applicationSettings" 
                      type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >

            <section name="YourProjectName.Properties.Settings" 
                     type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
                     requirePermission="false" />

        </sectionGroup>
    </configSections>
</configuration>

Notez qu'à l'intérieur du configuration le premier enfant doit être l'élément configSections élément.

Dans le name la propriété sur section assurez-vous de remplacer YourProjectName avec le nom de votre projet actuel.

Il m'est arrivé de créer un webservice dans un projet de bibliothèque de classes, puis de copier (en l'écrasant) le fichier de configuration (afin d'apporter la configuration des points de terminaison) à mon application Windows et j'ai commencé à avoir le même problème. J'avais supprimé par inadvertance configSections .

ça a marché pour moi, j'espère que ça aidera

86 votes

"à l'intérieur de l'élément 'configuration', le premier enfant doit être l'élément 'configSections'" << c'était le point crucial pour moi. Merci.

8 votes

Un autre scénario - Si vous recherchez ConfigurationManager.Appsettings[""], assurez-vous que le <appSettings> est présent dans la configuration. Sinon, vous obtiendrez cette exception

7 votes

Cela a réglé mon problème où configSections existait mais était situé plus loin dans le fichier app.config. Je ne peux m'empêcher de demander pourquoi cette erreur s'est produite. Je pensais que les éléments XML n'avaient pas besoin d'être ordonnés.

116voto

jarek Points 373

Supprimer les anciens fichiers de configuration de c : \Users\username\AppData\Local\appname et c : \Users\username\AppData\Roaming\appname et essayez ensuite de redémarrer votre application.

2 votes

Merci, je travaille. Mais je ne comprends toujours pas quel est le problème ?

1 votes

Sous le dossier local, le fichier user.config était vide. Après avoir supprimé le dossier local, l'application commence à fonctionner.

3 votes

Merci, ça a marché. Mais quelle pourrait être la raison de cette erreur.

15voto

Flash Gordon Points 41

Si vous avez ajouté vos propres sections de configuration personnalisées à votre fichier App.Config assurez-vous que vous avez défini la section dans la section <configSections> élément. J'ai ajouté le XML de ma configuration mais j'ai oublié de déclarer la section de configuration en haut - ce qui a provoqué l'exception "Configuration system failed to initialize" pour moi.

3 votes

De plus, si vous avez une section déclarée en haut et que le nom de la section en dessous comporte une faute de frappe, vous obtiendrez cette erreur. Si vous regardez l'InnerException de l'exception levée, vous saurez quelle section pose problème.

6voto

Aligned Points 3261

J'ai eu ce même problème avec une classe MSTest : Marlon Grech dans son article dit "l'élément doit être défini comme le premier élément dans l'App.config".

Assurez-vous donc que c'est le premier élément sous l'élément. J'avais mis AppSettings en premier.

0 votes

Ohh c'est ma faute : vous l'avez effectivement fait mais je n'ai pas remarqué ;-) Merci pour cette précision

1voto

Tono Nam Points 4465

Wow, ça m'a pris une éternité pour comprendre celui-là. Pour une raison quelconque, changer l'attribut [assembly: AssemblyCompany("CompanyName")] sur AssemblyInfo.cs a fait disparaître cette erreur. Je faisais référence à un projet dont la valeur de l'attribut était différente. [assembly: AssemblyCompany("CompanyName")] . J'ai fait en sorte que les deux projets aient la même valeur d'attribut et cela a bien fonctionné !

0 votes

Est-ce un bug ? On peut difficilement s'attendre à ce que le nom de votre entreprise corresponde à un projet tiers auquel vous faites référence.

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