我在Oracle 9.2下用ASP.net连接Oracle数据库提示如下错误:“System.Exception: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater”的错误。或提示:“未找到Oracle客户端和网络组件。这些组件是由Oracle公司提供的,是Oracle8i版(或更高)客户软件安装的一部分。在安装这些组件之前,将无法使用此提供程序。”
     baidu了一下!惊奇的发现了两种解决的方法,我试验了一下,都可以解决这个问题:

     看起来就是读取和运行权限的问题,尤其是在NTFS下这个问题可能会经常遇到。

第一种方法:

     找到Oracle 9i 客户端的安装目录,我的是d:\oracle,右键属性-〉安全-〉选择上面的用户Authenticated Users,将权限的读取及运行(默认应该就是选中的),将选中点击为不选中(就是勾去掉),然后在点击选中,然后应用,确定,然后重新启动系统。看起来是没有进行操作,但实际上还是有作用的,原因不清楚,有人说是Oracle的BUG。

第二种方法:

     找到Oracle 9i 客户端的安装目录,我的是d:\oracle,右键属性-〉安全-〉添加Everyone这个用户,并赋给完全控制的权限,然后应用,确定,然后重新启动系统。

     Oracle 10g 和 Oracle 9i有同样的问题。

     提示: 修改权限要根据安装目录结构的不同,调整不同目录的权限。比如我在9i下安装的目录不是默认的,而是d:\Oracle,所以修改oracle的属性就可以了。但是安装Oracle 10g的目录是默认的d:\Oracle\product\10.1.0\Client_1,但是我修改Oracle目录发现权限只继承到10.1.0目录,要直接修改Client_1目录的属性才能解决这个问题。