web-dev-qa-db-fra.com

Échec d'initialisation du système de configuration

Je suis nouveau dans Visual Studio. Je crée actuellement 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 chaque fois que je tente de saisir le nom d'utilisateur et le mot de passe, une erreur appelée Le système de configuration n'a pas pu s'initialiser . Je me demande simplement de quel genre de problème s'agit-il et comment pourrais-je résoudre ce problème?

S'il vous plaît aider.

198
sean

Assurez-vous que votre fichier de configuration (web.config si web ou app.config si windows) de votre projet commence par:

<?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 de l'élément configuration, le premier enfant doit être l'élément configSections.

Dans la propriété name sur l'élément section, veillez à remplacerYourProjectNamepar le nom de votre projet actuel.

Il m'est arrivé de créer un service Web dans un projet de bibliothèque de classes, puis de copier (écraser) le fichier de configuration (afin d'apporter la configuration des ordinateurs d'extrémité) à mon application Windows et d'avoir le même problème. J'avais par inadvertance supprimé configSections.

cela a fonctionné pour moi, espérons que cela aide 

361
feluco79

Supprimez les anciens fichiers de configuration de c:\Utilisateurs\nom_utilisateur\AppData\Local\nom_application et c:\Utilisateurs\nom_utilisateur\AppData\Roaming\nomapplication , puis essayez de redémarrer votre application.

96
jarek

Parfois, l'erreur se produit car une fenêtre crée un duplicata dans le 

C:\Utilisateurs\App Data\Local\"Nom de l'application" ...

Il suffit de supprimer ce dossier et c'est fait. l'essayer.

17
Ashu Gupta

Si vous avez ajouté vos propres sections de configuration personnalisées à votre App.Config, assurez-vous d'avoir défini la section dans l'élément <configSections>. J'ai ajouté le XML de configuration, mais j'ai oublié de déclarer la section de configuration en haut, ce qui a provoqué l'exception "L'installation du système de configuration n'a pas pu".

11
Flash Gordon

J'ai eu le 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 du fichier App.config".

Donc, assurez-vous que c'est le premier élément sous l'élément. J'avais d'abord mis AppSettings.

6
Aligned

Je sais que cela a déjà été répondu, mais j'ai eu exactement le même problème dans mes tests unitaires. J'étais en train de me couper les cheveux - en ajoutant une section appSettings, puis en déclarant la section de configuration conformément à la réponse. Finalement, j'ai découvert que j'avais déjà déclaré une section appSettings plus loin dans mon fichier de configuration. Les deux sections pointaient vers mon fichier de paramètres externe "appSettings.config", mais le premier élément appSettings utilisait l'attribut fichier , tandis que l'autre utilisait l'attribut configSource . Je sais que la question portait sur la connectionStrings. Effectivement, cela se produit si l'élément appSettings est l'élément connectionStrings en cours de duplication avec des attributs différents.

Espérons que cela puisse fournir à quelqu'un d'autre la solution avant de s'engager dans la voie que j'ai choisie, ce qui conduit à perdre une heure ou deux. soupir oh la vie de nous développeurs. Certains jours, nous perdons plus d’heures à déboguer qu’à développer!

4
csharpforevermore

J'ai commencé à avoir ce problème après la désinstallation du pilote client Oracle et le fichier C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\machine.config !

Le copier depuis un autre ordinateur a résolu le problème.

3
Jeremy Thompson

Si vous avez défini les paramètres utilisateur, vous pouvez également disposer d'un fichier user.config quelque part dans le dossier [Userfolder]\AppData\Local [NomProjet]. 

Si vous supprimez ultérieurement les paramètres définis pour l'utilisateur, le fichier user.config ne sera pas automatiquement supprimé et sa présence risque de générer le même message d'erreur. Supprimer le dossier a fait l'affaire pour moi.

3
Wuolennaj
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="xyz" value="123" />    
  </appSettings>
</configuration>
2
Leny

Même problème avec moi, j'ai résolu mon problème en supprimant verion = "v3.5" de App.config.

Avant

 <?xml version="1.0" encoding="utf-8"?>
  <configuration>

  <startup>

 <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
 </startup>
 <supportedRuntime version="v3.5" />//Remove this
</configuration>

Solution

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <startup>

    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
  </startup>
  </configuration>

Voici comment utiliser la version sur 

Elément d'exécution du support MSDN

1
user5093161

Wow, il m'a fallu une éternité pour comprendre celui-ci. Pour une raison quelconque, le changement d'attribut [Assembly: AssemblyCompany("CompanyName")] à AssemblyInfo.cs a fait disparaître cette erreur. Je faisais référence à un projet qui avait une valeur différente pour l'attribut [Assembly: AssemblyCompany("CompanyName")]. Je me suis assuré que les deux projets avaient la même valeur d'attribut et que cela fonctionnait très bien! 

1
Tono Nam

Dans mon cas, dans mon fichier .edmx, j'avais exécuté la commande "Update Model From Database". Cette commande a ajouté une chaîne de connexion inutile à mon fichier app.config. J'ai supprimé cette chaîne de connexion et tout était bien à nouveau.

0
Versatile

Il est à noter que si vous ajoutez des éléments tels que des chaînes de connexion dans app.config, si vous ajoutez des éléments en dehors des sections de configuration définies, vous ne vous plaindrez pas immédiatement, mais lorsque vous essayez d'y accéder, vous pouvez alors obtenir les erreurs ci-dessus.

Réduisez toutes les sections principales et assurez-vous qu'il n'y a pas d'éléments en dehors de ceux définis. Évident, quand vous l'avez réellement repéré.

0
Anthony Horne

Si vous traitez avec Azure WebJob - Je devais supprimer les éléments suivants après la mise à niveau vers la dernière version 4.6.1.

  <compilation debug="true" targetFramework="4.6.1">
    <assemblies>
      <add Assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    </assemblies>
  </compilation>

J'espère que cela t'aides.

0
Dave Friedel

C'est un peu idiot, mais pour moi, je l'ai corrigé en effectuant une dernière obtention du contrôle de source sur mon code. Je pense qu'un autre élément de configuration a été ajouté par quelqu'un d'autre et que je devais écraser mes fichiers de configuration. OP montre l’erreur que j’ai eue et qui ne m’a pas vraiment orientée dans la bonne direction.

0
DLeh

Dans mon cas, la seule solution consistait à ajouter la référence au System.Configuration dans mon projet de test également.

0
Jose Santos

Comme@Flash Gordonmentionné dans son commentaire, vous devrez définir une balise personnalisée (en tant que section) dans votre fichier App.config , sous <configSections>. Par exemple, vous travaillez sur un projet d'automatisation de test avec SpecFlow et en ajoutant la balise <specFlow>. Dans ce cas, la version la plus simple de App.config ressemblera à ceci:  enter image description here 

0
DenisD

Après une longue recherche, j’ai réalisé que cette exception avait une exception interne qui vous dit exactement ce qui ne va pas avec votre fichier de configuration

0
Gerrie Pretorius

Je viens d'avoir ceci et c'est parce que j'avais un élément <configuration> imbriqué à l'intérieur d'un élément <configuration>.

0
Mike Cheel

Dans mon cas, j'ai deux configsections dans le fichier app.config. Après avoir supprimé celui qui se cache dans les lignes de code, l'application fonctionne correctement. 

Donc, si quelqu'un a le même problème, vérifiez d'abord si vous avez des doublons de configuration. 

0
oopsdazie

J'ai résolu le problème en utilisant le code ci-dessous

   <?xml version="1.0" encoding="utf-8" ?>
<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>
  <appSettings>
    <add key="SPUserName" value="TestUser" />
    <add key="SPPassword" value="UserPWD" />
  </appSettings>
</configuration>
0
Sumant Singh

Essayez de sauvegarder le fichier .config en tant que utf-8 si vous avez des caractères "spéciaux". C'était le problème dans mon cas d'une application de console.

0
lukalev

Moi aussi, j’ai fait face au même problème, mais j’ai accidentellement écrit le Sans l’écrire, le précédent devrait entrer dans ces balises. ainsi l'erreur "Echec de l'initialisation du système de configuration" s'est produite . J'espère que cela vous aidera

0