asp.net - 在 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>
解决方案
它说
只允许一个 configSections 并且必须是配置的第一个子项
将您的appSettings
和connectionStrings
部分移动到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>
推荐阅读
- c++ - C 预处理器 - 为现有定义添加路径
- google-cloud-platform - Gsutil 总是超时
- sql - 如何在 SQL 中取消透视?(SAP HANA)(列到行)
- html - 从按钮单击扩展 div 标签不起作用
- tensorflow - 如何在 Google Cloud Platform 上将 tensorflow 从版本 1 升级到版本 2?
- javascript - 使用 JavaScript 获取 Infragistics WebDataGrid 中单击的单元格的值
- google-maps-api-3 - GoogleMaps JS 无法在中国加载地图了
- reactjs - 反应无法读取属性“地图”
- bash - 在用户名中带有 @ 和 : 的 scp
- java - Mapstruct 扩展包含具有相同签名的方法的多个接口