每个配置文件只允许一个<configSections>元素,如果存在,则必须是根<configuration>元素的第一个子元素

Mah*_*esh 88 c# asp.net iis-7 app-config console-application

我正在开发控制台应用程序,当我运行.exe文件时,我收到以下错误.

system.Configuration.ConfigurationErrorsException:system.Configuration.ConfigurationErrorsException每个配置文件只允许一个 元素,如果存在,则必须是根<configSections>元素的第一个子元素.

App.config文件是

<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0"/>
    </startup>
    <configSections>
        <section name="Reva.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    </configSections>
    <!-- ... -->
Run Code Online (Sandbox Code Playgroud)

如果我删除了

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
</startup>
Run Code Online (Sandbox Code Playgroud)

然后它工作正常.

Dan*_*rth 214

你真的应该只是阅读错误信息.它包含解决问题所需的一切:
configSections必须是根元素的第一个子元素:

<configuration>
    <configSections>
        <section name="Reva.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    </configSections>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0"/>
    </startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)

  • 今天我学会了我应该阅读整个错误信息.谢谢. (51认同)
  • 谢谢你的帮助. (4认同)
  • @AtronSeige 我也是:P (2认同)
  • 事实证明,我的配置没问题,但该机器上的machine.config坏了.它甚至包含一个SQLExpress/localhost连接字符串,尽管该计算机上没有安装任何SQL. (2认同)