Jestem nowy w Visual Studio. Obecnie tworzę formularz logowania.
Mam ten kod.
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);
}
Ale ilekroć próbuję wpisać nazwę użytkownika i hasło, pojawia się błąd o nazwie Inicjalizacja systemu konfiguracji nie powiodła się . Zastanawiam się tylko, co to za problem i jak mogę to rozwiązać?
Proszę pomóż.
Odpowiedzi:
Upewnij się, że plik konfiguracyjny (web.config, jeśli web lub app.config, jeśli Windows) w twoim projekcie zaczyna się jako:
Zauważ, że wewnątrz
configuration
elementu pierwsze dziecko musi byćconfigSections
elementem.Upewnij się, że we
name
właściwości nasection
elemencie zastąpionoYourProjectName
rzeczywistą nazwą projektu.Zdarzyło mi się, że utworzyłem serwis internetowy w projekcie biblioteki klas, a następnie skopiowałem (nadpisałem) plik konfiguracyjny (w celu dostosowania konfiguracji punktów końcowych) do mojej aplikacji Windows i zacząłem mieć ten sam problem. Nieumyślnie usunąłem
configSections
.działało dla mnie, mam nadzieję, że to pomaga
źródło
configSections
istniał element, ale znajdował się on później w części app.config. Nie mogę się powstrzymać od pytania, dlaczego wystąpił ten błąd. Myślałem, że elementów XML nie trzeba zamawiać.Usuń stare pliki konfiguracyjne z c: \ Users \ nazwa użytkownika \ AppData \ Local \ appname oraz c: \ Users \ nazwa użytkownika \ AppData \ Roaming \ nazwa aplikacji, a następnie spróbuj ponownie uruchomić aplikację.
źródło
Czasami występuje błąd, ponieważ okna tworzą duplikat w pliku
Po prostu usuń ten folder i gotowe. Spróbuj.
źródło
Jeśli dodałeś własne sekcje konfiguracji do swojego
App.Config
, upewnij się, że zdefiniowałeś sekcję w<configSections>
elemencie. Dodałem plik XML konfiguracji, ale zapomniałem zadeklarować sekcję konfiguracji do góry - co spowodowało dla mnie wyjątek „Nie można zainicjować systemu konfiguracji”.źródło
Miałem ten sam problem z klasą MSTest: Marlon Grech w swoim artykule mówi „element musi być zdefiniowany jako pierwszy element w App.config”.
Upewnij się więc, że jest to pierwszy element pod elementem. Najpierw umieściłem AppSettings.
źródło
Wiem, że już na to odpowiedziano, ale miałem dokładnie ten sam problem w testach jednostkowych. Oderwałem włosy - dodałem sekcję AppSettings, a następnie zadeklarowałem sekcję konfiguracji zgodnie z odpowiedzią. W końcu dowiedziałem się, że zadeklarowałem już sekcję appSettings w górę mojego pliku konfiguracyjnego. Obie sekcje wskazywały na mój plik ustawień zewnętrznych „appSettings.config”, ale pierwszy element appSettings korzystał z pliku atrybutów , podczas gdy drugi używał atrybutu configSource . Wiem, że pytanie dotyczyło połączeniaStrings. Rzeczywiście dzieje się tak, jeśli element appSettings jest elementem connectionStrings powielanym z różnymi atrybutami.
Mam nadzieję, że może to zapewnić komuś rozwiązanie, zanim pójdzie ścieżką, którą zrobiłem, co prowadzi do marnowania godziny lub dwóch. westchnij o życiu naszych programistów. Kilka dni marnujemy więcej na debugowanie niż na rozwój!
źródło
appSettings
iapplicationSettings
oba.Problem ten zacząłem pojawiać się po odinstalowaniu sterowników klienta Oracle i usunąłem go C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ machine.config !
Skopiowanie go z innego komputera rozwiązało problem.
źródło
źródło
Jeśli masz ustawienia o zasięgu użytkownika, w
[Userfolder]\AppData\Local\[ProjectName]
folderze może znajdować się plik user.config .Jeśli później usuniesz ustawienia o zasięgu użytkownika, plik user.config nie zostanie automatycznie usunięty, a jego obecność może spowodować ten sam komunikat o błędzie. Usunięcie folderu załatwiło sprawę.
źródło
Wow, zajęło mi to wieczność, aby to rozgryźć. Z jakiegoś powodu zmiana atrybutu
[assembly: AssemblyCompany("CompanyName")]
atAssemblyInfo.cs
sprawiła, że ten błąd zniknął. Odwoływałem się do projektu, który miał inną wartość atrybutu[assembly: AssemblyCompany("CompanyName")]
. Upewniłem się, że oba projekty mają tę samą wartość atrybutu i działa świetnie!źródło
Ten sam problem ze mną Rozwiązałem mój problem, usuwając verion = "v3.5" z App.config.
Przed
Rozwiązanie
Oto jak używać wersji na
Element wykonawczy obsługi MSDN
źródło
Po długim wyszukiwaniu, które zdałem sobie sprawę, ten wyjątek ma wewnętrzny wyjątek, który mówi dokładnie, co jest nie tak z plikiem konfiguracyjnym
źródło
Warto zauważyć, że jeśli dodasz do app.config rzeczy takie jak parametry połączenia, że jeśli dodasz elementy poza zdefiniowane sekcje konfiguracji, nie będzie to natychmiast narzekać, ale kiedy spróbujesz uzyskać do nich dostęp, możesz uzyskać powyższe błędy.
Zwiń wszystkie główne sekcje i upewnij się, że nie ma żadnych elementów poza zdefiniowanymi. Oczywiście, kiedy to zauważyłeś.
źródło
W moim przypadku jedynym rozwiązaniem było dodanie odniesienia do projektu
System.Configuration
w moim teście.źródło
To trochę głupie, ale dla mnie to naprawiłem, wykonując najnowszą kontrolę źródła w moim kodzie. Myślę, że ktoś inny dodał nowy element konfiguracji i musiałem zastąpić moje pliki konfiguracyjne. OP pokazuje błąd, który popełniłem, co tak naprawdę nie wskazywało mi właściwego kierunku.
źródło
Ja też napotkałem ten sam problem, ale przypadkowo napisałem bez pisania, poprzedni powinien wejść do tych tagów. dlatego pojawił się błąd „Inicjalizacja systemu konfiguracji nie powiodła się”. Mam nadzieję, że to pomoże
źródło
W moim przypadku mam dwie konfiguracje w pliku app.config. Po usunięciu ukrytego w wierszach kodu aplikacja działa poprawnie.
Jeśli więc ktoś ma ten sam problem, najpierw sprawdź, czy masz zduplikowane konfiguracje.
źródło
Jeśli masz do czynienia z zadaniem Azure WebJob - musiałem usunąć następujące elementy po aktualizacji do najnowszej wersji 4.6.1.
Mam nadzieję że to pomoże.
źródło
W moim przypadku w pliku .edmx uruchomiłem polecenie „Aktualizuj model z bazy danych”. To polecenie dodało niepotrzebny ciąg połączenia do mojego pliku app.config. Usunąłem ciąg połączenia i wszystko znów było dobrze.
źródło
Rozwiązałem problem za pomocą poniższego kodu
źródło
Spróbuj zapisać plik .config jako utf-8, jeśli masz w nim jakieś znaki „specjalne”. To był problem w moim przypadku aplikacji konsoli.
źródło
Jak wspomniał @Flash Gordon w swoim komentarzu, musisz zdefiniować dowolny niestandardowy znacznik (jako sekcję) w pliku App.config , pod
<configSections>
. Na przykład pracujesz nad projektem automatyzacji testów za pomocą SpecFlow i dodajesz<specFlow>
znacznik, wtedy najprostsza wersja App.config będzie wyglądać następująco:źródło
Właśnie to miałem, a to dlatego, że miałem
<configuration>
element zagnieżdżony wewnątrz<configuration>
elementu.źródło
Zrestartowałem Visual Studio, a nawet cały komputer. Wyczyściłem projekt, przebudowałem i usunąłem plik bin.
Nic nie pomogło, dopóki nie zmieniłem konfiguracji z x64 na x86. Działa na x86, ale kiedy go zmieniłem, działało!
źródło
Wypróbowałem wszystkie powyższe rozwiązania, próbując dowiedzieć się, dlaczego w jednym z moich testów jednostkowych nie udało się pobrać konfiguracji z pliku app.config, który jest idealny.
Miałem 2 odniesienia do tego samego zestawu, tak:
Usunięcie (duplikatu) odniesienia na żółto naprawiło to dla mnie.
Mam nadzieję, że to zadziała dla kogoś innego i doprowadziło mnie to do szału.
źródło
Proste rozwiązanie dla projektów .Net Core WinForms / WPF / .Net Standard Class Library
krok 1: Zainstaluj
System.Configuration.ConfigurationManager
przez Nuget Managerkrok 2: Dodaj nowy
App.Config
plikkrok 3: Uzyskaj wartość
Jeśli dzwonisz z niego, a
Class Library
następnie dodajApp.Config
plik do głównego projektu.źródło
Jeśli masz sekcję niestandardową, musisz wspomnieć, że w configSections tuż pod tagiem konfiguracyjnym.
Sprawdź swoje pliki transformacji, upewnij się, że usunąłeś niepotrzebne znaczniki. Tylko pliki, które będą się różnić, muszą znajdować się w plikach transformacji. nie wspominaj o sekcji konfiguracji w plikach transformacji, jeśli nie są potrzebne. to również spowodowałoby problem.
jeśli masz jakiś błąd składniowy w machine.config, to również ten błąd jest oczekiwany.
źródło