本来在.net中用odp连oracle是正常的,但系统打了补丁之后就报错了
“Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常。 重新安装odp还是不行,请高手帮忙解决下 急啊~~~~~~~~~~~
解决后在加分!!!!!!!!!!!!!!!1

解决方案 »

  1.   

    我遇到了,一台装了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是可以正常访问。
      

  2.   

    环境:机器A:win2003, .net2.0  机器B:win2003, Visual Studio 20051、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。
      

  3.   

    试试下面的办法:
    这表明你的注册表设置需要为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装载匹配的动态库。
      

  4.   

    把 OraOps10.dll或OraOps10w.dll 拷到跟 oracle.dataaccess.dll同一目录下
      

  5.   

    Oracle.DataAccess.Client.OracleConnection
      

  6.   

    这个是解决办法,其实确切的说不是和Oracle.DataAccess.dll同一目录下,而是需要放在bin目录中,和生成的exe或者dll文件放在一起,当然这个目录中会包括Oracle.DataAccess.dll。以上解决办法适用于安装了Oracle客户端但是没有安装ODP.net的情况。
      

  7.   

    兄弟,如果我想把Oracle.DataAccess.dll放在非Bin路径下如何做啊?