配置系统初始化失败 [英] Configuration System Failed To Initialize
本文介绍了配置系统初始化失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我的应用程序,当我尝试使用这种code,以获取连接字符串:
System.Configuration.ConfigurationManager.ConnectionStrings [构造]的ConnectionString。
它抛出一个异常的配置系统初始化失败。哪里的app.config错误的格式?
< XML版本=1.0&GT?;
<结构>
<的ConnectionStrings>
<添加名称=构造的connectionString =集成安全性= FALSE;坚持安全信息= FALSE;用户ID =搞笑;密码= veryfunny;初始目录= vegimanager;数据源= \ sqlex preSS;/&GT ;
< /的ConnectionStrings>
< configSections>
< sectionGroup名=userSettingsTYPE =System.Configuration.UserSettingsGroup,系统,版本= 4.0.0.0,文化=中性公钥= b77a5c561934e089>
<节名称=Vegi_Manager.Properties.SettingsTYPE =System.Configuration.ClientSettingsSection,系统,版本= 4.0.0.0,文化=中性公钥= b77a5c561934e089allowExeDefinition =MachineToLocalUserrequirePermission =FALSE/>
< / sectionGroup>
< / configSections>
< userSettings>
< Vegi_Manager.Properties.Settings>
<设定名=FIRMNAMEserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMADDRESSserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMCITYserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMSTATEserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMPHONEserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMMOBILEserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMEMAILserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMTINserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMPANserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMMANDITAXNOserializeAs =字符串>
<价值/>
< /设置>
<设定名=INITIALFONFIGDONEserializeAs =字符串>
<价值>假< /值GT;
< /设置>
<设定名=FIRMJURISDICTIONserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMBANKDETAILSserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMDETAILSserializeAs =字符串>
<价值/>
< /设置>
<设定名=BILLFORMATNOserializeAs =字符串>
<价值> 0℃/值GT;
< /设置>
<设定名=PRINTERNAMEserializeAs =字符串>
<价值/>
< /设置>
< /Vegi_Manager.Properties.Settings>
< / userSettings>
<启动>
< supportedRuntime版本=4.0版的SKU =NETFramework,版本= V4.0/>
< /启动>
< /结构>
解决方案
尝试把 configSections
为配置的第一个子元素
,因为 configSections
应该是配置中的第一个元素
所以,你的配置文件将是这样的:
<结构>
< configSections>
< sectionGroup名=userSettingsTYPE =System.Configuration.UserSettingsGroup,系统,版本= 4.0.0.0,文化=中性公钥= b77a5c561934e089>
<节名称=Vegi_Manager.Properties.SettingsTYPE =System.Configuration.ClientSettingsSection,系统,版本= 4.0.0.0,文化=中性公钥= b77a5c561934e089allowExeDefinition =MachineToLocalUserrequirePermission =FALSE/>
< / sectionGroup>
< / configSections>
<的ConnectionStrings>
<添加名称=构造的connectionString =集成安全性= FALSE;坚持安全信息= FALSE;用户ID =搞笑;密码= veryfunny;初始目录= vegimanager;数据源= \ sqlex preSS;/&GT ;
< /的ConnectionStrings>
< userSettings>
< Vegi_Manager.Properties.Settings>
<设定名=FIRMNAMEserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMADDRESSserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMCITYserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMSTATEserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMPHONEserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMMOBILEserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMEMAILserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMTINserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMPANserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMMANDITAXNOserializeAs =字符串>
<价值/>
< /设置>
<设定名=INITIALFONFIGDONEserializeAs =字符串>
<价值>假< /值GT;
< /设置>
<设定名=FIRMJURISDICTIONserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMBANKDETAILSserializeAs =字符串>
<价值/>
< /设置>
<设定名=FIRMDETAILSserializeAs =字符串>
<价值/>
< /设置>
<设定名=BILLFORMATNOserializeAs =字符串>
<价值> 0℃/值GT;
< /设置>
<设定名=PRINTERNAMEserializeAs =字符串>
<价值/>
< /设置>
< /Vegi_Manager.Properties.Settings>
< / userSettings>
<启动>
< supportedRuntime版本=4.0版的SKU =NETFramework,版本= V4.0/>
< /启动>
< /结构>
In my application when I try to get the connection string by using this code :
System.Configuration.ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
It throws an exception that "Configuration System Failed To Initialize". Where is the format of app.config wrong ?
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="ConStr" connectionString="Integrated Security=false;Persist Security Info=False;User ID=funny;password=veryfunny;Initial Catalog=vegimanager;Data Source=.\sqlexpress;"/>
</connectionStrings>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="Vegi_Manager.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
</configSections>
<userSettings>
<Vegi_Manager.Properties.Settings>
<setting name="FIRMNAME" serializeAs="String">
<value/>
</setting>
<setting name="FIRMADDRESS" serializeAs="String">
<value/>
</setting>
<setting name="FIRMCITY" serializeAs="String">
<value/>
</setting>
<setting name="FIRMSTATE" serializeAs="String">
<value/>
</setting>
<setting name="FIRMPHONE" serializeAs="String">
<value/>
</setting>
<setting name="FIRMMOBILE" serializeAs="String">
<value/>
</setting>
<setting name="FIRMEMAIL" serializeAs="String">
<value/>
</setting>
<setting name="FIRMTIN" serializeAs="String">
<value/>
</setting>
<setting name="FIRMPAN" serializeAs="String">
<value/>
</setting>
<setting name="FIRMMANDITAXNO" serializeAs="String">
<value/>
</setting>
<setting name="INITIALFONFIGDONE" serializeAs="String">
<value>False</value>
</setting>
<setting name="FIRMJURISDICTION" serializeAs="String">
<value/>
</setting>
<setting name="FIRMBANKDETAILS" serializeAs="String">
<value/>
</setting>
<setting name="FIRMDETAILS" serializeAs="String">
<value/>
</setting>
<setting name="BILLFORMATNO" serializeAs="String">
<value>0</value>
</setting>
<setting name="PRINTERNAME" serializeAs="String">
<value/>
</setting>
</Vegi_Manager.Properties.Settings>
</userSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
解决方案
Try putting the configSections
as the first child element of configuration
, because configSections
should be the first element of configurations
So your config file will go like this:
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="Vegi_Manager.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
</configSections>
<connectionStrings>
<add name="ConStr" connectionString="Integrated Security=false;Persist Security Info=False;User ID=funny;password=veryfunny;Initial Catalog=vegimanager;Data Source=.\sqlexpress;"/>
</connectionStrings>
<userSettings>
<Vegi_Manager.Properties.Settings>
<setting name="FIRMNAME" serializeAs="String">
<value/>
</setting>
<setting name="FIRMADDRESS" serializeAs="String">
<value/>
</setting>
<setting name="FIRMCITY" serializeAs="String">
<value/>
</setting>
<setting name="FIRMSTATE" serializeAs="String">
<value/>
</setting>
<setting name="FIRMPHONE" serializeAs="String">
<value/>
</setting>
<setting name="FIRMMOBILE" serializeAs="String">
<value/>
</setting>
<setting name="FIRMEMAIL" serializeAs="String">
<value/>
</setting>
<setting name="FIRMTIN" serializeAs="String">
<value/>
</setting>
<setting name="FIRMPAN" serializeAs="String">
<value/>
</setting>
<setting name="FIRMMANDITAXNO" serializeAs="String">
<value/>
</setting>
<setting name="INITIALFONFIGDONE" serializeAs="String">
<value>False</value>
</setting>
<setting name="FIRMJURISDICTION" serializeAs="String">
<value/>
</setting>
<setting name="FIRMBANKDETAILS" serializeAs="String">
<value/>
</setting>
<setting name="FIRMDETAILS" serializeAs="String">
<value/>
</setting>
<setting name="BILLFORMATNO" serializeAs="String">
<value>0</value>
</setting>
<setting name="PRINTERNAME" serializeAs="String">
<value/>
</setting>
</Vegi_Manager.Properties.Settings>
</userSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
这篇关于配置系统初始化失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文