2014-10-10 62 views
0

我甚至不知道我是否可以做我想做的事,但我从几个项目导入了表单并添加了对这些项目的引用。每个项目都有一组不同的连接字符串,我试图让它们在App.config中共存,我可以通过SECTION(用户从组合框中选择连接)进行过滤。我希望我可以通过实现ConfigSections来做到这一点。如果这是可行的,我显然不知道如何。配置系统无法初始化==>无法识别的配置节

附加的是我的App.config。我得到的错误“配置系统初始化失败”当我钻到细节,它说“无法识别的配置节amSettings

正是我试图做可能吗?如果是这样,我需要纠正什么?

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
     <sectionGroup name="ApplicationSettings" 
         type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
      <section name="amSettings.Properties.Settings" 
        type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
        allowExeDefinition="MachineToLocalUser" 
        requirePermission="false"/> 
      <section name="cbSettings.Properties.Settings" 
     type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
     requirePermission="false"/> 
     </sectionGroup> 
    </configSections> 

    <amSettings> 
     <add key="VX130 Attribute Map Connections" value="Sample Console Application" /> 
     <add key="Region 1 VX130" value="Server=R01SCRDWH82;Database=R01_FDW;Trusted_Connection=true;"/> 
     <add key="Region 2 VX130" value="Server=R02LITDWH82;Database=R01_FDW;Trusted_Connection=true;"/> 
     <add key="Region 3 VX130" value="Server=R03DURDWH82;Database=R01_FDW;Trusted_Connection=true;"/> 
     <add key="Region 4 VX130" value="Server=R04PHIDWH82;Database=R01_FDW;Trusted_Connection=true;"/> 
     <add key="CDW" value="Server=VHACDWA01;Database=;Trusted_Connection=true;"/> 
    </amSettings> 
    <cbSettings> 
     <add key="CDW Class Builder Connections" value="Sample Console Application" /> 
     <add key="Region 1 Class Build"  value="Server=R01SCRDWH82;Database=R01_FDW;Trusted_Connection=true;"/> 
     <add key="Region 2 Class Build"  value="Server=R02LITDWH82;Database=R01_FDW;Trusted_Connection=true;"/> 
     <add key="Region 3 Class Build"  value="Server=R03DURDWH82;Database=R01_FDW;Trusted_Connection=true;"/> 
     <add key="Region 4 Class Build"  value="Server=R04PHIDWH82;Database=R01_FDW;Trusted_Connection=true;"/> 
     <add key="DEVELOPMENT Class Build" value="Server=VHACDWA01;Database=Util;Trusted_Connection=true;"/> 
     <add key="PREVIEW Class Build" value="Server=VHACDWA01;Database=Util;Trusted_Connection=true;"/> 
     <add key="VERSION Class Build" value="Server=VHACDWA01;Database=Util;Trusted_Connection=true;"/> 
    </cbSettings> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
</configuration> 

回答

0

变化从amSettings.Properties.Settings到amSettings和cbSettings.Properties.Settings到cbSettings

例如段名

`<section name="amSettings" ` 

这是一个完整的例子:

如果你改变你的配置文件,以这样的:

 var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
     AppSettingsSection appSettingSection = (AppSettingsSection)config.GetSection("amSettings"); 
     var a = appSettingSection.Settings["ABC"].Value; 
+0

我试过并得到同样的错误。不知道它是否相关,但我可以删除amSettings和cbSettings部分,只保留ConfigSections定义并且错误消失。不幸的是我知道有更长的连接字符串 – 2014-10-10 17:41:42

+0

你的答案是它的一部分。也不得不包装组名称的部分。 \t 2014-10-10 17:59:19

+0

好的,在我编辑之前没有看到您的评论。如果您不明确需要ApplicationSettings部分,则可以删除该部分组并直接定义amSettings和cbSettings。 – user469104 2014-10-10 18:11:53

0

<configSections> 
     <section name="amSettings" 
       type="System.Configuration.AppSettingsSection" 
       allowExeDefinition="MachineToLocalUser" 
       requirePermission="false"/> 
     <section name="cbSettings" 
    type="System.Configuration.AppSettingsSection" 
    requirePermission="false"/> 
    </configSections> 
    <amSettings> 
     <add key="ABC" value="DEF"/> 
    </amSettings> 

然后你就可以使用此代码访问关键ABC

解决方案有两点。将部分名称更改为user469104,并将部分包装在组名中。

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
     <sectionGroup name="ApplicationSettings" 
         type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
      <section name="amSettings" 
        type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
        allowExeDefinition="MachineToLocalUser" 
        requirePermission="false"/> 
      <section name="cbSettings" 
     type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
     requirePermission="false"/> 
     </sectionGroup> 
    </configSections> 
<ApplicationSettings> 
    <amSettings> 
     <add key="VX130 Attribute Map Connections" value="Sample Console Application" /> 
     <add key="Region 1 VX130" value="Server=R01SCRDWH82;Database=R01_FDW;Trusted_Connection=true;"/> 
     <add key="Region 2 VX130" value="Server=R02LITDWH82;Database=R01_FDW;Trusted_Connection=true;"/> 
     <add key="Region 3 VX130" value="Server=R03DURDWH82;Database=R01_FDW;Trusted_Connection=true;"/> 
     <add key="Region 4 VX130" value="Server=R04PHIDWH82;Database=R01_FDW;Trusted_Connection=true;"/> 
     <add key="CDW" value="Server=VHACDWA01;Database=;Trusted_Connection=true;"/> 
    </amSettings> 
    <cbSettings> 
     <add key="CDW Class Builder Connections" value="Sample Console Application" /> 
     <add key="Region 1 Class Build"  value="Server=R01SCRDWH82;Database=R01_FDW;Trusted_Connection=true;"/> 
     <add key="Region 2 Class Build"  value="Server=R02LITDWH82;Database=R01_FDW;Trusted_Connection=true;"/> 
     <add key="Region 3 Class Build"  value="Server=R03DURDWH82;Database=R01_FDW;Trusted_Connection=true;"/> 
     <add key="Region 4 Class Build"  value="Server=R04PHIDWH82;Database=R01_FDW;Trusted_Connection=true;"/> 
     <add key="DEVELOPMENT Class Build" value="Server=VHACDWA01;Database=Util;Trusted_Connection=true;"/> 
     <add key="PREVIEW Class Build" value="Server=VHACDWA01;Database=Util;Trusted_Connection=true;"/> 
     <add key="VERSION Class Build" value="Server=VHACDWA01;Database=Util;Trusted_Connection=true;"/> 
    </cbSettings> 
</ApplicationSettings> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
</configuration> 
相关问题