NET 3.5 - sistema de configuração falhou a exceção initialize
-
22-07-2019 - |
Pergunta
Em meu aplicativo winform, eu estou tentando adicionar um userSetting, embora o erro está ocorrendo com appSettings também. Quando a configuração é adicionado Recebo uma exceção jogada que diz: "O sistema de configuração falhou ao inicializar" com uma exceção interna "não reconhecido seção de configuração userSetting"
Exceção detalhes:
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:
Solução
Tente verificar que o app.config (myapp.exe.config uma vez implantado) o arquivo existe e tem no topo (possivelmente com outros bits)
<?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>
Outras dicas
Eu tive algumas configurações do usuário, em seguida, removido todos eles e comecei a ver esta exceção - mas apenas ao executar o aplicativo sem depuração. Funcionou muito bem ao depurar o aplicativo. A razão é que em nível de usuário configurações são "cache" na pasta Application Data local, e na verdade não são lidos a partir do MYAPP.exe.config. Então o que eu fiz foi ir para C: \ Users \ myusername \ AppData \ Local MyCompany \ MYAPP.exe_Url_longnastyhash9982749827349879 \ 1.0.0.0 \ user.config (isto é em Win7, o caminho depende OS) e removeu essa pasta \ (com a hash longo) completamente. A exceção foi embora. BTW, dependendo de como suas configurações são configurados neste arquivo user.config pode estar sob \ AppData \ Local ou \ AppData \ Roaming.
Eu recebo este erro quando eu escrever o meu App.Config (estupidamente) como abaixo.
<?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>
Note, que não há appSettings? Eu costumava fazer esse erro regularmente ...
Eu comecei a ver esta mensagem quando eu removi todos os UserSettings. Eu era capaz de corrigi-lo adicionando uma única volta userSetting nos arquivos de configurações.
Solução Limpa Exclua todos os arquivos definições actualmente existentes, bem como app.config Fechar VS ir manualmente e limpar a pasta bin e a pasta obj do seu projeto Reiniciar PC Re-adicionar o "Application Configuration File"
Eu tinha um este problema hoje e descobri que eu tinha acidentalmente (para não mencionar erroneamente) acrescentou uma segunda seção de configuração personalizada para o meu app. Uma vez eu removi a adição errante, eu era capaz de continuar a executar meu aplicativo sem problemas.
<?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>
Retirar a segunda seção ABCConfig resolveu o meu problema. Espero que isso ajude!
Provavelmente, o problema é que seu arquivo de configuração não está de acordo com o seu esquema. Por exemplo, este problema pode ser recriado por duplicação da seção ConnectionStrings.
Eu tive algum lixo na minha machine.config que estava causando esse erro. Olhe para o rastreamento de pilha de exceção e veja se você tem o mesmo problema. Foi XML essencialmente malformado.
Eu tive esse problema porque eu mudei um escopo configuração do aplicativo (de 'aplicação' para o usuário "). Como eu não poderia encontrar uma solução para resolver o meu problema, eu decidi apagar o arquivo de configurações para o explorador solução. Depois disso, eu abri as propriedades, no separador 'Definições', eu cliquei em que foi proposta a criação do arquivo de configurações. E um novo arquivo de configurações foi criada com os valores que eu definidos para o arquivo de configurações anterior. I reconstruída meu projeto e funcionou bem.
A tag de inicialização fez o truque para mim no VS Pro 2013 versão 12.021005.1 com .Net 4.5.51650 para aplicação console (arquivo ou seja app.config)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<connectionStrings>
...
</connectionStrings>
</configuration>