首页 > 解决方案 > 在 web.config 中只允许出现一个 configSection 错误

问题描述

我正在将 Windows 窗体应用程序转换为 asp.net,我遇到的主要问题是我无法添加连接字符串或appsettings TAG,它继续给我我的 web.config 文件无效的错误:“只允许一个configSections 并且必须是配置的第一个子项

如果您使用此 web.config 运行它可以工作,但如果您取消注释连接字符串它会给出错误

这是我的文件 web.config:

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

    <configuration>

   <!--    <appSettings>
        <add key="ciao" value="ciao"/>
        <add key="PassMail" value="*****"/>
        <add key="Host" value="*.****.com"/>
      </appSettings>

    <connectionStrings>
        <add name="CONN" connectionString="Server=10.10.0;Database=****;User Id=sa;Password=******;" />
      </connectionStrings>-->

     <configSections>   
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
      </configSections>
      <startup>
      </startup>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <probing privatePath="Support\Misc;Support\Misc\zedgraph;Support\Lib" />
        </assemblyBinding>
      </runtime>

      <system.data>
        <DbProviderFactories>
          <remove invariant="MySql.Data.MySqlClient"/>
          <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
          <remove invariant="System.Data.SqlClient"/>
          <add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <remove invariant="System.Data.SQLite.EF6"/>
          <add name="SQLite Data Provider" invariant="System.Data.SQLite.EF6" description=".Net Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6, Version=1.0.105.2, Culture=neutral, PublicKeyToken=db937bc2d44ff139"/>
        </DbProviderFactories>
      </system.data>

      <entityFramework >
        <providers>
          <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"/>
          <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
            <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6"/>  
        </providers>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
          <parameters>
            <parameter value="v11.0"/>
          </parameters>
        </defaultConnectionFactory>
      </entityFramework>

        <system.web>
          <compilation debug="true"  />      
        </system.web>

    </configuration>

标签: asp.net

解决方案


它说

只允许一个 configSections 并且必须是配置的第一个子项

将您的appSettingsconnectionStrings部分移动到configSections节点下方。

<configuration>

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

  <appSettings>
    <add key="ciao" value="ciao"/>
    <add key="PassMail" value="*****"/>
    <add key="Host" value="*.****.com"/>
  </appSettings>

<connectionStrings>
    <add name="CONN" connectionString="Server=10.10.0;Database=****;User Id=sa;Password=******;" />
  </connectionStrings>
  <startup>
  </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="Support\Misc;Support\Misc\zedgraph;Support\Lib" />
    </assemblyBinding>
  </runtime>

  <system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient"/>
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
      <remove invariant="System.Data.SqlClient"/>
      <add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    <remove invariant="System.Data.SQLite.EF6"/>
      <add name="SQLite Data Provider" invariant="System.Data.SQLite.EF6" description=".Net Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6, Version=1.0.105.2, Culture=neutral, PublicKeyToken=db937bc2d44ff139"/>
    </DbProviderFactories>
  </system.data>

  <entityFramework >
    <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"/>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
        <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6"/>  
    </providers>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0"/>
      </parameters>
    </defaultConnectionFactory>
  </entityFramework>

    <system.web>
      <compilation debug="true"  />      
    </system.web>

</configuration>

推荐阅读