asp.net 每个配置文件只允许有一个configSections元素,并且如果存在,必须是根配置元素的第一个子元素

dohp0rv5  于 2023-02-14  发布在  .NET
关注(0)|答案(3)|浏览(225)

我正在开发控制台应用程序,当我运行.exe文件时,收到以下错误:
system.Configuration.ConfigurationErrorsException:每个配置文件只允许一个<configSections>元素,如果存在,则必须是根<configuration>元素的第一个子元素。
下面是我的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>
    <!-- ... -->

但是,如果我删除下面的startup部分,它就可以正常工作

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
</startup>
46qrfjad

46qrfjad1#

错误消息本身实际上详细说明了正确的修复方法:
configSections必须是根元素的 * 第一个子元素**:

  • 着重号后加

因此,只需将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>
d5vmydt9

d5vmydt92#

错误的web.config文件

<?xml version="1.0" encoding="utf-8"?>   

<configuration>    
   <connectionStrings>   
      <add name="SQLConnect" 
           connectionString="Data Source=SAHIL; Initial Catalog=Demo; Integrated Security=SSPI" 
           providerName="System.Data.SqlClient" />   
   </connectionStrings>     

   <configSections>   
      <sectionnamesectionname="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, 
          Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
   </configSections>  

   :   
   :   
   :   
   :   
   :   
   :   
   :   
</configuration>

错误是

为了修复错误,我重新排列了元素,错误已修复。

pu3pd22g

pu3pd22g3#

对于我的情况:
app.config下方,运行时错误为

"ConfigurationErrorsException: Only one <configSections> element allowed per config 
file and if present must be the first child of the root <configuration> element."

故障App.config

<configuration> 
    <appSettings></appSettings>
    <configSections></configSections>   
    <startup> </startup>
    <runtime></runtime>
</configuration>

我只是把<configSections></configSections>移到了顶部,问题就解决了。
正确的App.config

<configuration> 
    <configSections></configSections>
    <appSettings></appSettings>
    <startup> </startup>
    <runtime></runtime>
</configuration>

相关问题