代码之家  ›  专栏  ›  技术社区  ›  AdamSane

.NET 3.5-配置系统未能初始化异常

  •  27
  • AdamSane  · 技术社区  · 17 年前

    在我的WinForm应用程序中,我正在尝试添加一个用户设置,尽管在AppSettings中也发生了错误。当添加设置时,我得到一个异常,即“配置系统初始化失败”,内部异常为“无法识别的配置节用户设置”。

    异常详细信息:

    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.ConfigurationManager.PrepareConfigSystem()
           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 Settings.get_ApplicationData() in \Properties\Settings.Designer.cs:line 41
           at Common.Initialize.IsSettingsInitialized() 
           at SurveyClient.Program.Main() 
           at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
           at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
           at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
           at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
           at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
           at System.Threading.ThreadHelper.ThreadStart()
      InnerException: System.Configuration.ConfigurationErrorsException
           Message="Unrecognized configuration section userSettings.
           Source="System.Configuration"
           BareMessage="Unrecognized configuration section userSettings."
           Line=3
           StackTrace:
                at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
                at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
                at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()
                at System.Configuration.ClientConfigurationSystem.OnConfigRemoved(Object sender, InternalConfigEventArgs e)
           InnerException: 
    
    11 回复  |  直到 9 年前
        1
  •  25
  •   Marc Gravell    17 年前

    尝试检查app.config(部署后的myapp.exe.config)文件是否存在并位于顶部(可能与其他位一起)。

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <configSections>
    <sectionGroup name="userSettings"
        type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
    </sectionGroup>
    
        2
  •  26
  •   beluga    10 年前

    我有一些用户设置,然后删除了所有这些设置,并开始看到这个异常——但只有在运行应用程序时没有进行调试。它在调试应用程序时工作得很好。原因是用户级设置被“缓存”在本地应用程序数据文件夹中,而实际上并不是从myapp.exe.config中读取。所以我所做的是转到c:\users\myusername\appdata\local\mycompany\myapp.exe\u url\longnastyhash9982749827349879\1.0.0.0\user.config(这取决于win7,路径取决于操作系统)并完全删除该文件夹(使用长哈希)。例外情况消失了。btw,根据设置方式的不同,此user.config文件可能位于\appdata\local或\appdata\roaming下。

        3
  •  5
  •   Kanini    15 年前

    当我写app.config(愚蠢地)时,会出现如下错误。

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    
    <!--List of XMLFiles Begins -->
        <add key="ConfigFileEnvironment" value="C:\Program Files\MyProduct\Config\Environment.xml" />
    <!--List of XMLFiles Ends -->
    
    </configuration>
    

    注意,没有应用程序设置?我以前经常犯这个错误…

        4
  •  4
  •   Fares    15 年前

    删除所有用户设置后,我开始看到此消息。我可以通过将单个用户设置添加回设置文件来修复它。

        5
  •  2
  •   bulltorious    15 年前

    清洁溶液 删除所有当前存在的设置文件以及app.config 近距离VS 手动进入并清除项目的bin文件夹和obj文件夹 重新启动PC 重新添加“应用程序配置文件”

        6
  •  2
  •   oddmeter    14 年前

    我今天遇到了这个问题,发现我无意中(更不用说是错误地)在app.config中添加了第二个自定义配置部分。一旦我删除了错误的添加,我就可以继续运行我的应用程序而不会出现问题。

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="ABCConfig" type="ABC.Configuration.ABCConfigurationSection, ABC"/>
        <!-- Other custom section definitions -->
      </configSections>
      <connectionStrings>
          <!-- Connection strings go here -->
      </connectionStrings>
    
      <!-- Configure ABC -->
      <ABCConfig CustomA="blah" CustomB="stuff" />
    
      <!-- Other custom sections -->
    
      <!-- Errant addition to Configure ABC which causes the problem - SHOULD NOT BE HERE -->
      <ABCConfig CustomA="blah" CustomB="stuff" />
    
    </configuration>
    

    删除第二个abcconfig部分解决了我的问题。希望这有帮助!

        7
  •  1
  •   RA.    17 年前

    可能问题是配置文件不符合其模式。例如,可以通过复制connectionStrings部分来重新创建此问题。

        8
  •  1
  •   ashes999    14 年前

    我的machine.config中有一些垃圾导致了这个错误。查找异常堆栈跟踪并查看是否有相同的问题。它本质上是格式错误的XML。

        9
  •  0
  •   jonsca    13 年前

    我遇到这个问题是因为我更改了一个应用程序设置范围(从“应用程序”改为“用户”)。由于找不到解决问题的解决方案,我决定将设置文件删除到解决方案资源管理器中。之后,我打开了属性,在“设置”选项卡中,单击了创建设置文件的建议位置。并创建了一个新的设置文件,其中包含我在以前的设置文件中定义的值。我重新构建了我的项目,它运行得很好。

        10
  •  0
  •   Snokoh    10 年前

    Startup标签在vs Pro 2013版本12.021005.1中为我提供了诀窍,控制台应用程序的.NET 4.5.51650(即app.config文件)。

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
        </startup>
     <connectionStrings>
     ...
    </connectionStrings>
    </configuration>
    
        11
  •  0
  •   MarkyMarksFunkyBunch    9 年前

    只是在我找到问题的解决方案时发布在这里,但没有看到它列在这里…… 我在主配置节点下添加了一个appsettings标记,当我运行它时,得到了与op相同的错误。修复的是确保configSections节点优先于我的appsettings节点。 enter image description here