部分或组名称' oracle.manageddataaccess.client'已定义

时间:2017-03-27 13:53:48

标签: oracle

将Oracle.ManagedDataAccess dll从版本4.121.1.0更新到版本4.121.2.0之后,因为我无法使用NHibernate在以前的版本中保存CLOB类型的值,所以在客户端计算机上它给出了以下错误: System.TypeInitializationException:' OracleInternal.Common.ProviderConfig'的类型初始值设定项。抛出一个例外。 ---> System.Configuration.ConfigurationErrorsException:配置系统初始化失败---> System.Configuration.ConfigurationErrorsException:节或组名' oracle.manageddataaccess.client'已定义。对此的更新可能仅发生在定义它的配置级别。

在我的开发机器上,这不会发生,我查看了他的机器的machine.config文件,这部分不包括在内,我已经尝试过使用和没有Nuget在app.config中添加的设置,但似乎没有上班。 有谁知道如何解决这个问题? 谢谢

3 个答案:

答案 0 :(得分:6)

从machine.config中删除带有oracle.manageddataaccess.client的部分。

NuGet包中的自述文件告诉您这样做。

答案 1 :(得分:1)

放入app.config并删除或评论此部分:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- <configSections>
        <section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.18.3, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
</configSections> -->
<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
<system.data>

答案 2 :(得分:0)

我遇到了同样的错误“ OracleInternal.Common.ProviderConfig的类型初始化器抛出异常”。

运行应用程序时,在控制台错误消息中,“定义了重复的'oracle.manageddataaccess.client'部分。”

找出Oracle.ManagedDataAccess的定义是在我的WebAPI web.config和机器配置中。

必须更新此特定machine.config: C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ machine.config-搜索“托管”并在3个地方注释掉。