«Не удалось инициализировать систему конфигурации» при доступе к settings.settings - PullRequest
6 голосов
/ 22 августа 2009

С тех пор, как я удалил исходный файл settings.settings, у меня возникали бесконечные проблемы с настройкой параметров. Я получаю сообщение об ошибке «Не удалось инициализировать систему конфигурации» в методах get или set. Есть идеи? спасибо.

    public static Settings Default {
        get {
            return defaultInstance;
        }
    }

    [global::System.Configuration.UserScopedSettingAttribute()]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.Configuration.DefaultSettingValueAttribute("Keywords.log")]
    public string KeywordsLog {
        get {
            return ((string)(this["KeywordsLog"]));
        }
        set {
            this["KeywordsLog"] = value;
        }
    }

Проблема находится в Settings.Designer.cs

Адриан Бэнкс, боюсь, я не знаю, как дальше отлаживать? Это уже ломается на ошибку. Заголовок данного поля - «ConfigurationErrorsException», если это помогает каким-либо образом.

Я прошу прощения, я не понял, что вы могли видеть более подробную информацию в VS.

System.Configuration.ConfigurationErrorsException was unhandled
  Message="Configuration system failed to initialize"
  Source="System.Configuration"
  BareMessage="Configuration system failed to initialize"
  Line=0
  StackTrace:
       at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
       at System.Configuration.ClientConfigurationSystem.PrepareClientConfigSystem(String sectionName)
       at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.RefreshConfig(String sectionName)
       at System.Configuration.ConfigurationManager.RefreshSection(String sectionName)
       at System.Configuration.ClientSettingsStore.ReadSettings(String sectionName, Boolean isUserScoped)
       at System.Configuration.LocalFileSettingsProvider.GetPropertyValues(SettingsContext context, SettingsPropertyCollection properties)
       at System.Configuration.SettingsBase.GetPropertiesFromProvider(SettingsProvider provider)
       at System.Configuration.SettingsBase.GetPropertyValueByName(String propertyName)
       at System.Configuration.SettingsBase.get_Item(String propertyName)
       at System.Configuration.ApplicationSettingsBase.GetPropertyValue(String propertyName)
       at System.Configuration.ApplicationSettingsBase.get_Item(String propertyName)
       at READOO.Properties.Settings.get_KeywordsLog() in C:\Users\USER\Documents\Visual Studio 2008\Projects\READOO\READOO\Properties\Settings.Designer.cs:line 31
       at READOO.SettingsWindow..ctor() in C:\Users\USER\Documents\Visual Studio 2008\Projects\READOO\READOO\SettingsWindow.cs:line 19
       at READOO.WelcomeWindow.Settings_Click(Object sender, EventArgs e) in C:\Users\user\Documents\Visual Studio 2008\Projects\READOO\READOO\WelcomeWindow.cs:line 23
       at System.Windows.Forms.Control.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ButtonBase.WndProc(Message& m)
       at System.Windows.Forms.Button.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at READOO.Program.Main() in C:\Users\USER\Documents\Visual Studio 2008\Projects\READOO\READOO\Program.cs:line 18
       at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: System.Configuration.ConfigurationErrorsException
       Message="Section or group name 'READOO.Properties.Settings' is already defined. This can not be defined multiple times. (C:\\Users\\USER\\Documents\\Visual Studio 2008\\Projects\\READOO\\READOO\\bin\\Debug\\READOO.exe.config line 6)"
       Source="System.Configuration"
       BareMessage="Section or group name 'READOO.Properties.Settings' is already defined. This can not be defined multiple times."
       Filename="C:\\Users\\USER\\Documents\\Visual Studio 2008\\Projects\\READOO\\READOO\\bin\\Debug\\READOO.exe.config"
       Line=6
       StackTrace:
            at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
            at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()
            at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
       InnerException: 

@ joan -> chill.

Ответы [ 3 ]

8 голосов
/ 22 августа 2009

Это будет ваша подсказка:

Имя раздела или группы 'READOO.Properties.Settings' уже определено. Это не может быть определено несколько раз. (C: \ Users \ Dylan \ Documents \ Visual Studio 2008 \ Projects \ READOO \ READOO \ bin \ Debug \ READOO.exe.config строка 6)

Возможно, у вас есть 2 <section name="READOO.Properties.Settings"> элементов в вашем <configSections> определении в этом файле конфигурации.

Повторяющаяся запись, скорее всего, находится в строке 6 в указанном файле конфигурации.

5 голосов
/ 21 июля 2013

Это случилось со мной тоже. Решением было удалить все в Users \ yourUserName \ AppData \ Local \ YourAppName.

Кажется, когда какой-то параметр был сохранен как область действия пользователя, а затем вы (в конструкторе Settings.settings) превратили его в область применения приложения, что-то испортилось, и VS не знает, где взять значение параметра .

Теперь, если вы просто добавите какую-либо настройку в качестве параметра «Область пользователя», а затем установите для нее настройку «Область приложения» (без изменения и сохранения ее программным способом) - все будет в порядке. Но если сохранить параметр с помощью Properties.Settings.Default.Save (), а затем попытаться повернуть его в область приложения, он начнет вызывать проблему.

Надеюсь, это поможет.

0 голосов
/ 14 ноября 2012

Этому вопросу 3 года, но проблема никогда не устареет .. на случай, если кто-то наткнулся на это ..

У меня была такая же проблема, когда я скопировал раздел конфигурации из один проект в app.config другого проекта и не удалось скопировать полное пространство имен ..

<membership>
    <providers> ..

вместо

 <system.web>
   <membership>
       <providers> .. 

Убедитесь, что вы используете полный набор.

...