A Coder

Coding My Dream!

0%

System.Data.OracleClient需要Oracle客户端软件8.1.7或更高版本

###错误背景##

项目使用的是C#开发,数据库使用的是Oracle11g,通常链接oracle有两个组件

System.Data.OracleClient
Oracle.DataAccess.Client

第一个是微软自带的,第二个是oracle官方的。
听说第二种方式的效率比较高。但是第二种的版本号问题,以及位数(32位和64位)问题也比较麻烦。

###错误症状##

但是我们项目使用的是System.Data.OracleClient,配置好所有东西代码后运行结果报一下错误

System.Data.OracleClient需要Oracle客户端软件8.1.7或更高版本


###解决方案一###

但是经过试验,没能解决问题,可能对于某些情况是可以解决的。
于是网上百度一番后得到的解决方案如下:

  1. 一定要关闭Windows 防火墙;
  2. 找到ORACLE_HOME文件夹(服务器端是D:\oracle)。点击右键,选属性–安全,在组或用户栏中选“Authenticated
    Users”,在权限列表中把“读取和运行”的权限去掉,再按应用(据说这是Oracle的一个Bug,在9i版本中也存在);重新选上“读取和运行”权限,点击应用;选权限框下面的“高级”按钮,确认
    “Authenticated Users”后面的应用于是“该文件夹、子文件夹及文件”,按确定把权限的更改应用于该文件夹;
  3. 重新启动计算机,让权限设置生效(也可以不重新启动,在运行里运行cmd打开命令窗口,运行命令iisreset,重启下IIS,就可以正常访问);
  4. 最后客户端如果还不能访问,(我客户端用的是VS2005,用的是其内置的IIS测试代码)重新启动VS2005即可。

###终极解决方案###

最后解决办法:下载安装oracle的客户端即可。
下载地址http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_client.zip

最好装完整版,这样能更少的遇到问题,如果你了解你需要的组件,可以自由定制。我选择的是运行时安装。

安装教程http://www.cnblogs.com/jiguixin/archive/2011/09/09/2172672.html