如何解决Web.config中'Unrecognized configuration section entityFramework'错误?
解决「Unrecognized configuration section entityFramework」错误的办法
从你贴出来的Web.config代码片段来看,这个错误主要是配置节定义被注释、配置文件结构混乱导致的,咱们一步步来修复:
第一步:清理Web.config的结构错误
你的配置里存在重复的<configuration>和<configSections>节点,还有注释闭合错误(比如EntityFramework的注释没正确收尾),先把这些混乱的结构理清楚:
- 确保整个配置文件只有一个根
<configuration>节点 <configSections>必须是<configuration>下的第一个子节点,不能被其他节点(比如<system.web>)排在前面
第二步:正确定义entityFramework配置节
你把entityFramework的配置节定义给注释掉了,这是核心问题!把注释去掉,并且确保它的定义放在<configSections>内部,示例如下:
<configSections> <!-- 其他已有的节定义,比如dotNetOpenAuth、quartz、log4net等 --> <sectionGroup name="common"> <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" /> <!-- 取消下面这行的注释,确保type属性里的版本和你项目引用的EntityFramework版本一致 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </sectionGroup> </configSections>
注意:如果你的项目里EntityFramework版本不是6.0.0.0,要把Version改成你实际引用的版本号,公钥Token一般是b77a5c561934e089,这个不用改
第三步:确保EntityFramework包已正确安装
如果上面的配置改完还是报错,大概率是项目没装EntityFramework NuGet包:
- 打开NuGet包管理器控制台,执行命令:
Install-Package EntityFramework(或者对应版本的命令,比如Install-Package EntityFramework -Version 6.0.0) - 确认项目引用里已经有
EntityFramework程序集,版本和配置里写的一致
第四步:检查配置文件的完整性
你贴的代码最后<system.data>部分的<add>标签没闭合,比如:
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.Sql”
要把这个标签补全成:
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
否则也会导致配置文件解析失败,间接引发其他错误
内容的提问来源于stack exchange,提问作者Chidiebere Ugwu
相关产品推荐
相关产品推荐

