कॉन्फ़िगरेशन सिस्टम प्रारंभ में विफल रहा


225

मैं विजुअल स्टूडियो में नया हूं। मैं वर्तमान में एक लॉगिन फ़ॉर्म बना रहा हूं।

मेरे पास यह कोड है।

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);
}

लेकिन जब भी मैं उपयोगकर्ता नाम और पासवर्ड टाइप करने की कोशिश करता हूं तो एक त्रुटि होती है जिसे कॉन्फ़िगरेशन सिस्टम कहा जाता है जो प्रारंभ करने में विफल रहा । मैं सोच रहा हूं कि यह किस तरह की समस्या है और मैं इसे कैसे हल कर सकता हूं?

कृपया मदद कीजिए।



2
बस एक और परिदृश्य - यदि आप configurationManager.Appsettings [""] की तलाश कर रहे हैं, तो सुनिश्चित करें कि कॉन्फ़िगरेशन में <appSettings> मौजूद है। अन्यथा आपको यह अपवाद मिलेगा
LCJ

1
यह तब भी हो सकता है जब आपके पास एप्लेटिंग के लिए 2 स्थान हों
लॉरेंस थुरमन

जवाबों:


392

सुनिश्चित करें कि आपके प्रोजेक्ट में आपकी कॉन्फ़िग फ़ाइल (web.config यदि वेब, या app.config है तो विंडोज़) इस प्रकार है:

<?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>

ध्यान दें कि configurationतत्व के अंदर , पहला बच्चा configSectionsतत्व होना चाहिए ।

में nameपर संपत्ति sectionतत्व, सुनिश्चित करें कि आप की जगह बनाने के YourProjectNameअपने वास्तविक परियोजना के नाम के साथ।

मेरे साथ ऐसा हुआ कि मैंने एक क्लास लाइब्रेरी प्रोजेक्ट में एक वेबसर्विस बनाया, फिर मैंने अपने विंडोज ऐप में कॉन्फिग फाइल (एंडपॉइंट्स कॉन्फिगरेशन लाने के लिए) को कॉपी (ओवरराइटिंग) किया और मुझे भी यही समस्या होने लगी। मैंने अनजाने में हटा दिया था configSections

इसने मेरे लिए काम किया, आशा है कि यह मदद करेगा


79
"'कॉन्फ़िगरेशन' तत्व के अंदर, पहला बच्चा 'कॉन्फ़िगरेशन' तत्व होना चाहिए" << यह मेरे लिए महत्वपूर्ण बिंदु था। धन्यवाद।
डेन्कोडेमनीके

7
बस एक और परिदृश्य - यदि आप configurationManager.Appsettings [""] की तलाश कर रहे हैं, तो सुनिश्चित करें कि कॉन्फ़िगरेशन में <appSettings> मौजूद है। अन्यथा आपको यह अपवाद मिलेगा
LCJ

6
इसने मेरी समस्या को ठीक किया जहां configSectionsतत्व मौजूद था लेकिन बाद में app.config के हिस्से में स्थित था। मैं यह पूछने में मदद नहीं कर सकता कि यह त्रुटि क्यों हुई। मैंने सोचा कि XML तत्वों को ऑर्डर करने की आवश्यकता नहीं है।
ताई-सुंग शिन

3
यह सही है। विन्यास तत्व के तहत पहला बाल नोड विन्यास होना चाहिए।
उमंग देसाई

7
जिस तरह से Microsoft ने इस app.config को लागू किया है वह मंदबुद्धि है !!! कम से कम वे कर सकते थे एक बेहतर त्रुटि संदेश फेंक!
codenamezero

105

पुरानी कॉन्फ़िगरेशन फ़ाइलों को c: \ Users \ username \ AppData \ Local \ appname और c: \ Users \ username \ AppData \ Roaming \ appname से हटा दें और फिर अपने एप्लिकेशन को पुनरारंभ करने का प्रयास करें।


2
धन्यवाद, काम। लेकिन मुझे अभी भी समझ नहीं आया कि समस्या क्या है?
शराब पीकर

1
स्थानीय फ़ोल्डर user.config फ़ाइल के अंतर्गत रिक्त था। स्थानीय फ़ोल्डर ऐप को हटाने के बाद काम करना शुरू करें
ओजगुर जूल

3
धन्यवाद यह काम किया। लेकिन इस त्रुटि का कारण क्या हो सकता है।
vasuy19

1
मेरी फ़ाइल निम्न-मानों (0x00) से भर गई थी। मैंने एक काम करने वाले को कॉपी किया और फिर यह ठीक था
DanW

1
इस स्थान पर मेरी कॉन्फ़िग फ़ाइल पावर आउटेज ईवेंट के दौरान दूषित हो गई थी - कॉन्फ़िग फ़ाइल जो कि सामान्यतया XML है NUL बाइट्स से भरी हुई थी
mroselli

19

कभी-कभी त्रुटि तब होती है क्योंकि विंडो में डुप्लिकेट बनाते हैं

C: \ Users \ App Data \ Local \ "आप ऐप का नाम" ...

बस इस फ़ोल्डर को हटा दें और किया। कोशिश करो।


2
धन्यवाद। मैं अपने आवेदन द्वारा "उठाया" नहीं जा रहा सेटिंग्स फ़ाइल तार के साथ अपने मुद्दे को ठीक करने में असमर्थ था। मैंने कॉन्फिग फाइलों को साफ किया, .suo फाइल को पुनः प्राप्त किया, सभी मौजूदा .settings फ़ाइलों को हटा दिया और अभी भी किसी भी नई सेटिंग फ़ाइल से लोड करने में असमर्थ था, लेकिन बिल्ड पर कोई त्रुटि नहीं मिली। यह बुरा सपना आखिरकार खत्म हो गया है।
राचेल 23

13

यदि आपने अपने स्वयं के कस्टम कॉन्फ़िगरेशन अनुभागों को अपने साथ जोड़ा है App.Config, तो सुनिश्चित करें कि आपने <configSections>तत्व में अनुभाग को परिभाषित किया है। मैंने अपना कॉन्फ़िगरेशन XML जोड़ा, लेकिन कॉन्फ़िगरेशन खंड को ऊपर घोषित करना भूल गया - जिसके कारण मेरे लिए "कॉन्फ़िगरेशन सिस्टम प्रारंभ करने में विफल" अपवाद हुआ।


3
इसके अलावा - यदि आपके पास एक खंड ऊपर घोषित है और नीचे अनुभाग में नाम टाइपो है, तो आपको यह त्रुटि मिलेगी। यदि आप फेंके गए अपवाद के आंतरिक अपवाद को देखते हैं, तो यह आपको बताएगा कि समस्या किस अनुभाग में है।
शिंदिगो

6

एक MSTest वर्ग के साथ मुझे भी यही समस्या थी: मार्लोन ग्रेच ने अपने लेख में कहा है "तत्व को App.config में पहले तत्व के रूप में परिभाषित किया जाना है।"

इसलिए सुनिश्चित करें कि तत्व के तहत पहला तत्व है। मैंने पहले AppSettings डाल दिया था।


ओह्ह .. मेरा बुरा: आपने वास्तव में किया, लेकिन मैंने नोटिस नहीं किया
;;

4

मुझे पता है कि यह पहले ही उत्तर दिया जा चुका है लेकिन मुझे अपनी इकाई परीक्षणों में ठीक वैसी ही समस्या थी। मैं अपने बालों को फाड़ रहा था - एक ऐपसेटिंग अनुभाग जोड़ रहा था, और फिर उत्तर के अनुसार कॉन्फ़िगरेशन अनुभाग की घोषणा कर रहा था। अंत में पता चला कि मैंने पहले से ही अपनी कॉन्फ़िग फ़ाइल को अपसेट करने वाले सेक्शन की घोषणा कर दी है। दोनों अनुभागों ने मेरी बाहरी सेटिंग फ़ाइल "appSettings.config" की ओर इशारा किया, लेकिन पहले appSettings तत्व ने विशेषता फ़ाइल का उपयोग किया जबकि दूसरे ने विशेषता configSource का उपयोग किया । मुझे पता है कि कनेक्शन कनेक्शन के बारे में सवाल था। निश्चित रूप से पर्याप्त है, यह तब होता है जब appSettings तत्व अलग-अलग विशेषताओं के साथ डुप्लिकेट किए जा रहे कनेक्शनस्ट्रेसर्स तत्व है।

उम्मीद है, यह किसी और को समाधान के साथ प्रदान कर सकता है इससे पहले कि वे मेरे द्वारा किए गए पथ पर जाएं जो एक या दो घंटे बर्बाद कर देता है। आह ओह हमें डेवलपर्स के जीवन। हम विकास खर्च करने की तुलना में कुछ घंटे डिबगिंग में अधिक समय बर्बाद करते हैं!


बिंगो। था appSettingsऔर applicationSettingsदोनों।
सुशीग्युल

3

ओरेकल क्लाइंट ड्राइवर्स को अनइंस्टॉल करने के बाद मुझे यह समस्या होने लगी और इसने मेरे C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ machine.config को हटा दिया !

इसे दूसरे कंप्यूटर से कॉपी करने से समस्या हल हो गई।



3

यदि आपके पास उपयोगकर्ता स्कूप की गई सेटिंग्स है, तो आपके पास [Userfolder]\AppData\Local\[ProjectName]फ़ोल्डर में कहीं एक user.config फ़ाइल भी हो सकती है ।

यदि आप बाद में उपयोगकर्ता द्वारा हटाए गए सेटिंग्स को हटा देते हैं, तो user.config स्वचालित रूप से हटाया नहीं जाएगा, और यह उपस्थिति उसी त्रुटि संदेश का कारण हो सकता है। फ़ोल्डर को हटाने से मेरे लिए चाल चली गई।


1

वाह यह हमेशा के लिए मुझे यह पता लगाने के लिए ले लिया। किसी कारण से इस विशेषता [assembly: AssemblyCompany("CompanyName")]को बदलने से AssemblyInfo.csयह त्रुटि गायब हो गई। मैं एक परियोजना का उल्लेख कर रहा था जिसमें विशेषता के लिए एक अलग मूल्य था [assembly: AssemblyCompany("CompanyName")]। मुझे यकीन है कि दोनों परियोजनाओं को एक ही विशेषता मूल्य था और यह बहुत अच्छा काम किया!


क्या यह एक बग है? आपकी कंपनी के नाम का मिलान करने के लिए आपकी कंपनी के नाम का मिलान करने की उम्मीद शायद ही की जा सकती है।
डेनिस स्किडमोर

1

मेरे साथ एक ही समस्या मैं App.config से verion = "v3.5" को हटाकर अपनी समस्या हल कर ली।

इससे पहले

 <?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>

उपाय

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

  <startup>

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

यहाँ पर संस्करण का उपयोग कैसे करें

MSDN समर्थन रनटाइम तत्व


1

एक लंबी खोज के बाद मुझे एहसास हुआ, इस अपवाद में एक आंतरिक अपवाद है जो आपको बताता है कि आपकी कॉन्फ़िग फ़ाइल में क्या गलत है


मैं अपने app.config के अलग-अलग अनुभागों पर टिप्पणी-अनसुना करने की कोशिश कर रहा था और अपवाद पर भी आंतरिक अपवाद को नहीं देखा। और इस जवाब को देखने के बाद मैंने पाया कि मुद्दा क्या था। धन्यवाद।
सिड

0

यह ध्यान देने योग्य है कि यदि आप ऐप में कनेक्शन स्ट्रिंग्स जैसी चीज़ों को जोड़ते हैं ।config, कि यदि आप परिभाषित कॉन्फ़िगरेशन अनुभागों के बाहर आइटम जोड़ते हैं, तो यह तुरंत शिकायत नहीं करेगा, लेकिन जब आप प्रयास करते हैं और इसे एक्सेस करते हैं, तो आप इसे प्राप्त कर सकते हैं उपरोक्त त्रुटियां।

सभी प्रमुख अनुभागों को संक्षिप्त करें और सुनिश्चित करें कि परिभाषित वस्तुओं के बाहर कोई आइटम नहीं हैं। जाहिर है, जब आप वास्तव में इसे देखा है।


0

मेरे मामले में एकमात्र समाधान System.Configurationमेरे टेस्ट प्रोजेक्ट के संदर्भ को भी जोड़ना था ।


0

यह थोथा गूंगा है, लेकिन मेरे लिए मैंने अपने कोड पर स्रोत नियंत्रण से नवीनतम प्राप्त करके इसे ठीक किया। मुझे लगता है कि कुछ नया कॉन्फ़िगरेशन तत्व था जो किसी और द्वारा जोड़ा गया था, और मुझे अपनी कॉन्फ़िगरेशन फ़ाइलों को अधिलेखित करने की आवश्यकता थी। ओपी मुझे मिली त्रुटि को दिखाता है, जो वास्तव में मुझे सही दिशा में इशारा नहीं कर रहा था।


0

मुझे भी उसी समस्या का सामना करना पड़ा, लेकिन गलती से मैंने बिना लिखे ही लिख दिया, पहले वाले को इस टैग के अंदर जाना चाहिए। इस प्रकार 'कॉन्फ़िगरेशन सिस्टम फेल इन इनिशियलाइज़' त्रुटि उत्पन्न हो रही थी। आशा है कि यह मदद करेगा


0

मेरे मामले में, मेरे पास app.config फ़ाइल में दो कॉन्फ़िगरेशन हैं। कोड लाइनों में एक को छिपाने के बाद, एप्लिकेशन ठीक काम करता है।

तो किसी के लिए एक ही मुद्दा है, जांचें कि क्या आपके पास पहले डुप्लिकेट कॉन्फ़िगरेशन हैं।


0

यदि आप एक Azure WebJob के साथ काम कर रहे हैं - मुझे नवीनतम 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>

उम्मीद है की यह मदद करेगा।


0

मेरे मामले में, अपनी .edmx फ़ाइल के भीतर मैंने 'डेटाबेस से अपडेट मॉडल' कमांड को चलाया था। इस कमांड ने मेरे app.config फ़ाइल में एक अनावश्यक कनेक्शन स्ट्रिंग जोड़ा। मैंने उस कनेक्शन स्ट्रिंग को हटा दिया और सब फिर से अच्छा हो गया।


0

मैंने नीचे दिए गए कोड का उपयोग करके समस्या को हल किया

   <?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

यदि आपके पास वहां कुछ "विशेष" अक्षर हैं, तो .config फ़ाइल को utf-8 के रूप में सहेजने का प्रयास करें। कंसोल एप्लिकेशन के मेरे मामले में यही समस्या थी।


0

जैसा कि @Flash गॉर्डन ने अपनी टिप्पणी में उल्लेख किया है, आपको अपनी App.config फ़ाइल में, किसी भी कस्टम टैग (अनुभाग के रूप में) को परिभाषित करना होगा <configSections>। उदाहरण के लिए, आप SpecFlow और <specFlow>टैग जोड़ने के साथ एक परीक्षण स्वचालन परियोजना पर काम कर रहे हैं , तो App.config का एक सरलतम संस्करण इस तरह दिखेगा: यहां छवि विवरण दर्ज करें


0

मेरे पास बस यह था और यह इसलिए था क्योंकि मेरे पास एक <configuration>तत्व के अंदर निहित एक <configuration>तत्व था।


0

मैंने विज़ुअल स्टूडियो और यहां तक ​​कि पूरे पीसी को फिर से शुरू किया। मैंने प्रोजेक्ट को साफ किया, पुनर्निर्माण किया और बिन फ़ाइल को हटा दिया।

जब तक मैंने x64 से x86 में कॉन्फ़िगरेशन नहीं बदला तब तक कुछ भी मदद नहीं की। यह x86 पर काम किया, लेकिन जब मैंने इसे वापस बदल दिया तो यह भी काम कर गया!


0

मैंने ऊपर दिए गए सभी समाधानों को जानने की कोशिश की कि मेरी एक इकाई परीक्षण एक app.config फ़ाइल से कॉन्फ़िगरेशन लेने में विफल क्यों है जो एकदम सही है।

मेरे पास एक ही विधानसभा के 2 संदर्भ थे जैसे:

डुप्लिकेट संदर्भ

पहले और बाद में परियोजना फ़ाइल

पीले रंग में (डुप्लिकेट) संदर्भ को हटाने से यह मेरे लिए तय हो गया।

मुझे आशा है कि यह किसी और के लिए काम करता है, इसने मुझे थोड़ी देर के लिए पागल कर दिया।


0

.Net Core WinForms / WPF / .Net स्टैंडर्ड क्लास लाइब्रेरी परियोजनाओं के लिए आसान समाधान

चरण 1:System.Configuration.ConfigurationManager Nuget प्रबंधक द्वारा स्थापित करें

चरण 2: एक नई App.Configफ़ाइल जोड़ें

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="Bodrum" value="Yalikavak" />    
  </appSettings>
</configuration>

चरण 3: मान प्राप्त करें

string value = ConfigurationManager.AppSettings.Get("Bodrum");
// value is Yalikavak

यदि आप इसे कॉल कर रहे हैं Class Libraryतो App.Configअपने मुख्य प्रोजेक्ट पर फ़ाइल जोड़ें ।


0

यदि आपके पास एक कस्टम अनुभाग है, तो आपको यह उल्लेख करने की आवश्यकता है कि विन्यास टैग के ठीक नीचे विन्यास के तहत।

कृपया अपनी ट्रांसफ़ॉर्म फ़ाइलों की जाँच करें, सुनिश्चित करें कि आप अनावश्यक टैग हटा दें। केवल वह सेक्शन जो अलग-अलग हो रहा है, उसे ट्रांसफ़ॉर्मिंग फ़ाइल्स में रखने की आवश्यकता है। यदि आवश्यक न हो तो ट्रांसफ़ॉर्म फ़ाइल्स में कॉन्फ़िग सेक्शन का उल्लेख न करें। यह भी समस्या का कारण होगा।

अगर आपके पास machine.config में कोई सिंटैक्स त्रुटि है, तो यह त्रुटि भी अपेक्षित है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.