日期:2014-05-17  浏览次数:22096 次

“Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常。
本来在.net中用odp连oracle是正常的,但系统打了补丁之后就报错了
“Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常。 

重新安装odp还是不行,请高手帮忙解决下 急啊~~~~~~~~~~~
解决后在加分!!!!!!!!!!!!!!!1

------解决方案--------------------
没见过,帮顶。
------解决方案--------------------
你是不是除了打补丁还修改过别的什么?
比如说 连接串
------解决方案--------------------
帮顶,我用的是10g
------解决方案--------------------
我遇到了,一台装了oracle10g数据库,另一台机器装了oracle11g客户端,这样连的时候是没有问题。但是我在oracle10的机器上又装了instantclient11g后,就出现这个问题了。查询异常的innerexception的时候发现是这样的:InnerException {"The provider is not compatible with the version of Oracle client"} System.Exception {Oracle.DataAccess.Client.OracleException}

不兼容oracle客户端,但是用PL/SQL develop是可以正常访问。

------解决方案--------------------
环境:机器A:win2003, .net2.0 机器B:win2003, Visual Studio 2005

1、A装有oracle10g,B装有oracle11g Client,带有ODP.net,开发一个ASP.NET,其中引用了Oracle.DataAccess.dll(2.111.6.20)在VS2005中连接正常。

2、在A上部署ASP.NET,连接出错,出现"The provider is not compatible with the version of Oracle client" 错误

3、在A上加装oracle11g Client,然后部署ASP.NET,不需在bin中加入Oracle.DataAccess.dll,在A上可以正常连接

4、把B上oracle11g Client换成oracle10g InstantClient,并且把VS里的Oracle.DataAccess.dll更换成11g版本,出现出现{"“Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常。"}错误。其实错误信息为The provider is not compatible with the version of Oracle client。

5、把VS2005中的Oracle.DataAccess.dll更换成10g版本,出现无法加载 DLL (OraOps10.dll),把oracle10g InstantClient换成oracle10g Client后仍然是这问题,重启机器后却出现加载出错,没有权限,然后按照:右键点击Oracle Home 文件夹(如:D:\oracle\product\10.1.0\Client_1),进入属性,进入安全,选择Authenticated Users 用户组,检查下面的权限设置,确保具有读取和执行的权限(将Read and Execute 的勾去掉,然后又勾上)。 问题解决

--6、无论使用哪个版本的客户端,在B上,只要设置好path,以及PL/SQL Develop参数都可以连接A。


------解决方案--------------------
试试下面的办法:
这表明你的注册表设置需要为ODP.NET做出适当修改。
从ODP.NET 10.2.0.2.0开始,注册表设置在 HKLM\Software\Oracle\ODP.NET\<version #>下
(如HKLM\Software\Oracle\ODP.NET\2.102.2.20 and/or HKLM\Software\Oracle\ODP.NET\1.102.2.20
这个要看你用的是哪个ODP.NET版本)
在该键下,须有一个名为DllPath的REG_SZ类型的键。DllPath的值必须设定为Oracle client中OraOps10.dll或OraOps10w.dll 所在的目录。这个设定会迫使ODP.NET装载匹配的动态库。