Ich bin neu in Visual Studio. Ich erstelle gerade ein Anmeldeformular.
Ich habe diesen 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);
}
Aber wenn ich versuche, den Benutzernamen und das Passwort einzugeben, gibt es einen Fehler namens Konfigurationssystem konnte nicht initialisiert werden . Ich frage mich nur, was für ein Problem das ist und wie ich das lösen könnte.
Bitte helfen Sie.
Antworten:
Stellen Sie sicher, dass Ihre Konfigurationsdatei (web.config wenn web oder app.config wenn Windows) in Ihrem Projekt wie folgt beginnt:
Beachten Sie, dass innerhalb des
configuration
Elements das erste untergeordneteconfigSections
Element das Element sein muss.Stellen Sie in der
name
Eigenschaft aufsection
Element sicher, dass Sie durchYourProjectName
den Namen Ihres tatsächlichen Projekts ersetzen .Es ist mir passiert, dass ich einen Webservice in einem Klassenbibliotheksprojekt erstellt habe, dann die Konfigurationsdatei (um die Endpunktkonfiguration zu übernehmen) in meine Windows-App kopiert (überschrieben) und das gleiche Problem aufgetreten bin. Ich hatte versehentlich entfernt
configSections
.es hat bei mir funktioniert, hoffe es hilft
quelle
configSections
Element vorhanden war, sich aber später in der app.config befand. Ich kann nicht anders als zu fragen, warum dieser Fehler passiert ist. Ich dachte, XML-Elemente müssen nicht bestellt werden.Löschen Sie alte Konfigurationsdateien aus c: \ Benutzer \ Benutzername \ AppData \ Local \ Anwendungsname und c: \ Benutzer \ Benutzername \ AppData \ Roaming \ Anwendungsname und versuchen Sie dann, Ihre Anwendung neu zu starten.
quelle
Manchmal tritt der Fehler auf, weil ein Fenster ein Duplikat in der erstellt
Löschen Sie einfach diesen Ordner und fertig. Versuch es.
quelle
Wenn Sie Ihren eigenen benutzerdefinierten Konfigurationsabschnitten hinzugefügt haben
App.Config
, stellen Sie sicher, dass Sie den Abschnitt im<configSections>
Element definiert haben . Ich habe mein Konfigurations-XML hinzugefügt, aber vergessen, den Konfigurationsabschnitt oben zu deklarieren - was für mich die Ausnahme "Konfigurationssystem konnte nicht initialisiert werden" verursachte.quelle
Ich hatte das gleiche Problem mit einer MSTest-Klasse: Marlon Grech sagt in seinem Artikel : "Das Element muss als erstes Element in der App.config definiert werden."
Stellen Sie also sicher, dass dies das erste Element unter dem Element ist. Ich hatte AppSettings an die erste Stelle gesetzt.
quelle
Ich weiß, dass dies bereits beantwortet wurde, aber ich hatte genau das gleiche Problem in meinen Unit-Tests. Ich riss mir die Haare aus - fügte einen Abschnitt "appSettings" hinzu und deklarierte dann den Konfigurationsabschnitt gemäß der Antwort. Schließlich fand ich heraus, dass ich bereits einen Abschnitt appSettings weiter oben in meiner Konfigurationsdatei deklariert hatte. Beide Abschnitte zeigten auf meine externe Einstellungsdatei "appSettings.config", aber das erste appSettings-Element verwendete die Attributdatei , während das andere das Attribut configSource verwendete . Ich weiß, die Frage betraf die connectionStrings. Dies geschieht natürlich, wenn das appSettings-Element das connectionStrings-Element ist, das mit verschiedenen Attributen dupliziert wird.
Hoffentlich kann dies jemand anderem die Lösung bieten, bevor er den von mir eingeschlagenen Weg einschlägt, was dazu führt, dass ein oder zwei Stunden verschwendet werden. seufz oh das Leben von uns Entwicklern. Wir verschwenden an manchen Tagen mehr Stunden mit dem Debuggen als mit der Entwicklung!
quelle
appSettings
undapplicationSettings
beides.Ich habe dieses Problem nach der Deinstallation von Oracle Client Drivers festgestellt und mein C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ machine.config entfernt !
Durch Kopieren von einem anderen Computer wurde das Problem behoben.
quelle
quelle
Wenn Sie Einstellungen für den Benutzerbereich haben, befindet sich möglicherweise auch eine Datei user.config irgendwo im
[Userfolder]\AppData\Local\[ProjectName]
Ordner.Wenn Sie später die Einstellungen für den Benutzerbereich entfernen, wird die Datei user.config nicht automatisch entfernt, und ihre Anwesenheit kann dieselbe Fehlermeldung verursachen. Das Löschen des Ordners hat den Trick für mich getan.
quelle
Wow, ich habe ewig gebraucht, um das herauszufinden. Aus irgendeinem Grund hat das Ändern des Attributs
[assembly: AssemblyCompany("CompanyName")]
beiAssemblyInfo.cs
diesen Fehler verschwinden lassen. Ich habe auf ein Projekt verwiesen, das einen anderen Wert für das Attribut hatte[assembly: AssemblyCompany("CompanyName")]
. Ich habe sichergestellt, dass beide Projekte den gleichen Attributwert haben und es hat super funktioniert!quelle
Gleiches Problem mit mir Ich habe mein Problem gelöst, indem ich verion = "v3.5" aus App.config entfernt habe.
Vor
Lösung
Hier erfahren Sie, wie Sie die Version verwenden
MSDN Support Runtime Element
quelle
Es ist erwähnenswert, dass, wenn Sie Dinge wie Verbindungszeichenfolgen in die app.config einfügen, wenn Sie Elemente außerhalb der definierten Konfigurationsabschnitte hinzufügen, dies nicht sofort beanstandet wird, sondern wenn Sie versuchen, darauf zuzugreifen, dies möglicherweise erhalten die oben genannten Fehler.
Reduzieren Sie alle wichtigen Abschnitte und stellen Sie sicher, dass sich keine Elemente außerhalb der definierten befinden. Offensichtlich, wenn Sie es tatsächlich entdeckt haben.
quelle
In meinem Fall bestand die einzige Lösung darin, den Verweis auch
System.Configuration
in meinem Testprojekt hinzuzufügen .quelle
Das ist ein bisschen dumm, aber für mich habe ich es behoben, indem ich eine neueste Version der Quellcodeverwaltung für meinen Code erstellt habe. Ich glaube, es gab ein neues Konfigurationselement, das von jemand anderem hinzugefügt wurde, und ich musste meine Konfigurationsdateien überschreiben. OP zeigt den Fehler, den ich bekommen habe und der mich nicht wirklich in die richtige Richtung zeigte.
quelle
Auch ich hatte das gleiche Problem, aber aus Versehen habe ich das geschrieben, ohne das zu schreiben, das vorherige sollte in diese Tags gehen. Daher trat der Fehler "Konfigurationssystem konnte nicht initialisiert werden" auf. Hoffe es wird helfen
quelle
In meinem Fall habe ich zwei Konfigurationen in der Datei app.config. Nach dem Löschen der in den Codezeilen versteckten App funktioniert die App einwandfrei.
Wenn also jemand das gleiche Problem hat, überprüfen Sie zuerst, ob Sie doppelte Konfigurationen haben.
quelle
Wenn Sie mit einem Azure WebJob zu tun haben, musste ich nach dem Upgrade auf die neueste Version 4.6.1 Folgendes entfernen.
Hoffe das hilft.
quelle
In meinem Fall hatte ich in meiner EDMX-Datei den Befehl 'Modell aus Datenbank aktualisieren' ausgeführt. Dieser Befehl hat meiner Datei app.config eine unnötige Verbindungszeichenfolge hinzugefügt. Ich habe diese Verbindungszeichenfolge gelöscht und alles war wieder gut.
quelle
Ich habe das Problem mit dem folgenden Code gelöst
quelle
Versuchen Sie, die .config-Datei als utf-8 zu speichern, wenn Sie einige "Sonderzeichen" enthalten. Das war das Problem in meinem Fall einer Konsolenanwendung.
quelle
Wie @Flash Gordon in seinem Kommentar erwähnt hat, müssen Sie jedes benutzerdefinierte Tag (als Abschnitt) in Ihrer App.config- Datei unter definieren
<configSections>
. Wenn Sie beispielsweise an einem Testautomatisierungsprojekt mit SpecFlow arbeiten und ein<specFlow>
Tag hinzufügen , sieht eine einfachste Version von App.config folgendermaßen aus:quelle
Ich hatte dies nur und es war, weil ich ein
<configuration>
Element in einem Element verschachtelt hatte<configuration>
.quelle
Nach einer langen Suche wurde mir klar, dass diese Ausnahme eine innere Ausnahme hat, die Ihnen genau sagt, was mit Ihrer Konfigurationsdatei nicht stimmt
quelle
Ich habe Visual Studio und sogar den gesamten PC neu gestartet. Ich habe das Projekt bereinigt, neu erstellt und die Bin-Datei gelöscht.
Nichts hat geholfen, bis ich die Konfiguration von x64 auf x86 geändert habe. Es hat auf x86 funktioniert, aber als ich es wieder geändert habe, hat es auch funktioniert!
quelle
Ich habe alle oben genannten Lösungen ausprobiert, um herauszufinden, warum bei einem meiner Komponententests die Konfiguration nicht aus einer perfekten Datei app.config abgerufen werden konnte.
Ich hatte 2 Verweise auf dieselbe Versammlung wie folgt:
Das Entfernen der (doppelten) Referenz in Gelb hat es für mich behoben.
Ich hoffe, das funktioniert für jemand anderen, es hat mich für eine Weile verrückt gemacht.
quelle
Einfache Lösung für .Net Core WinForms / WPF / .Net Standard Class Library-Projekte
Schritt 1: Installieren
System.Configuration.ConfigurationManager
von Nuget - ManagerSchritt 2: Fügen Sie eine neue
App.Config
Datei hinzuSchritt 3: Holen Sie sich den Wert
Wenn Sie es von a aufrufen,
Class Library
fügen Sie dieApp.Config
Datei zu Ihrem Hauptprojekt hinzu.quelle
Wenn Sie einen benutzerdefinierten Abschnitt haben, müssen Sie diesen unter configSections direkt unter dem Konfigurations-Tag erwähnen.
Bitte überprüfen Sie Ihre Transformationsdateien und stellen Sie sicher, dass Sie die unnötigen Tags entfernen. Nur der Abschnitt, der variieren wird, muss in Transformationsdateien vorhanden sein. Erwähnen Sie den Konfigurationsabschnitt nicht in den Transformationsdateien, wenn er nicht benötigt wird. Dies würde auch das Problem verursachen.
Wenn in machine.config ein Syntaxfehler vorliegt, wird auch dieser Fehler erwartet.
quelle