我已经完成了一个VS2012 Web项目。我已经安装了ODP.NET,因为我们是甲骨文研讨会。我继承了一个使用Oracle.ManagedAccess.Data和EF的项目。
在VS2012中运行项目时,我得到以下错误:
There is a duplicate 'oracle.manageddataaccess.client' section defined..解决方案是禁用web.config中的以下行
<!--<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />-->这挺好的。项目进行了编译,但在执行一个简单的命令时,例如获取密码,它必须读取数据库,这时又出现了另一个错误:
System.Data.ConstraintException: Column 'InvariantName' is constrained to be unique. Value 'Oracle.ManagedDataAccess.Client' is already present.现在我意识到这个错误是由ODP.NET触发的,并使它存在于GAC中,从而产生了双重错误报告。
有没有另一行我应该注释掉的,或者有没有办法简单地禁用ODP.NET?我不想安装该客户端,因为我在其他项目中使用它。
谢谢
发布于 2015-12-18 01:03:11
我在Oracle site上找到了下面关于“定义了一个重复的'oracle.manageddataaccess.client‘部分”的内容。
如果您的应用程序是一个web应用程序,并且上面的条目已添加到web.config中,并且machine.config中也存在相同的"oracle.manageddataaccess.client“配置节处理程序,但"Version”属性值不同,则会出现错误消息"There is a duplicate 'oracle.manageddataaccess.client‘section defined“。可以在运行时观察到。如果是,则必须将machine.config中"oracle.manageddataaccess.client“的配置节处理程序条目从machine.config中删除,以使web应用程序不会遇到此错误。但是,如果计算机上可能有其他应用程序依赖于machine.config中的此条目,则可能需要将此配置节处理程序条目移动到该计算机上依赖它的所有应用程序的.NET配置文件中。
我希望它能帮上忙。
发布于 2018-11-20 18:29:54
我在一个ASP.Net MVC项目中也遇到了同样的错误。我发现项目的Web.config中的oracle.manageddataaccess.client版本不匹配,而machine.config在
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config, and
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config. 我在Web.config中有Version=4.122.18.3,在machine.config中有Version=4.122.1.0。
我更新了machine.config中的版本(替换了oracle.manageddataaccess.client with 4.122.18.3的Version=4.122.1.0 ),问题解决了。
发布于 2018-02-16 16:00:57
在我的例子中,我有多个项目。一个是实体框架数据模型,另一个是使用EF模型的WCF服务,一个使用WCF服务的WPF项目,最后是我的ASP.NET MVC项目,直接使用实体框架数据模型。我们使用Oracle并有一个Nuget包oracle.manageddata。除了我的ASP项目(它的版本是12.1.22)之外,我在所有其他项目中都使用了12.1.21版本。在降级到其他项目正在使用的版本后,我的Web ASP再次运行。在不同的项目中使用不同的Nuget版本,在相同的解决方案中,似乎不是一个好主意。
https://stackoverflow.com/questions/33312848
复制相似问题