配置系统初始化失败 [英] Configuration System Failed To Initialize

查看:223
本文介绍了配置系统初始化失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用程序,当我尝试使用这种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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆