[英].NET 3.5 - Configuration system failed to initialize exception
在我的winform应用程序中,我正在尝试添加userSetting,尽管appSettings也出现了错误。 当添加设置时,我得到一个抛出的异常,说:“配置系统无法初始化”,内部异常“无法识别的配置部分userSetting”
例外细节:
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:
我有一些用户设置,然后删除所有这些设置并开始看到此异常 - 但仅在运行应用程序时没有调试。 调试应用程序时它工作正常。 原因是用户级设置在本地应用程序数据文件夹中“缓存”,实际上不会从MYAPP.exe.config中读取。 所以我做的是去C:\\ Users \\ MYUSERNAME \\ AppData \\ Local \\ MYCOMPANY \\ MYAPP.exe_Url_longnastyhash9982749827349879 \\ 1.0.0.0 \\ user.config(这是在Win7上,路径依赖于操作系统)并删除该文件夹(使用完全长的哈希)。 例外消失了。 顺便说一句,根据您的设置设置,此user.config文件可能位于\\ AppData \\ Local或\\ AppData \\ Roaming下。
尝试检查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>
当我编写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>
请注意,没有appSettings? 我曾经经常做这个错误......
当我删除所有userSettings时,我开始看到此消息。 我能够通过将单个userSetting添加回设置文件来修复它。
我今天遇到了这个问题,发现我不小心(更不用说错误地)在我的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部分解决了我的问题。 希望这可以帮助!
Clean Solution删除所有当前存在的设置文件以及app.config关闭VS手动进入并清除项目的bin文件夹和obj文件夹重新启动PC重新添加“应用程序配置文件”
可能问题是您的配置文件不符合其架构。 例如,可以通过复制ConnectionStrings部分来重新创建此问题。
我的machine.config中有一些垃圾导致了这个错误。 查找异常堆栈跟踪,看看是否有同样的问题。 它本质上是格式错误的XML。
我有这个问题因为我改变了一个应用程序设置范围(从'application'到user')。 由于我找不到解决问题的解决方案,我决定将设置文件删除到解决方案资源管理器中。 之后,我打开了属性,在选项卡'设置'中,我点击了建议创建设置文件的位置。 并且已使用我在先前设置文件中定义的值创建了新的设置文件。 我重建了我的项目,效果很好。
启动标签在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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.