服务器端安装了Oracle9i,
本机安装完ASP.NET2003(安装在C盘),Oracle9i(安装在D盘)客户端后,
使用System.Data.OracleClient访问Oracle数据库时收到如下信息:
System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.
连接字符串如下:
"Data Source=***;User ID=abc;password=def;Unicode=True;";
应用程序在:C:\Inetpub\wwwroot\
7 个解决方案
NTFS的权限问题
如果已经装了客户端,还出现这个问题,那就是权限的问题,GOOGLE了一把,贴上来
================================================================================
最近做ASP.NET的项目,使用的数据库是Oracle9i。连接数据库是发生了错误,显示的信息如下:
System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Exception: System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。
真奇怪,明明已经是高于8.1.7版本了?怎么还不行。上网查才知道原因,唉!现在的NTFS分区真的是害死人啊。原来又是NTFS分区搞的鬼。正如同连接SQL Server数据库一样,用户权限很重要,如果没有授权是无法正常操作的。Oracle 9i Release 2 客户端在安装到Windows的NTFS分区下时的安全认证设置不正确,引起本机的Authenticated Users用户无法看到ORACLE_HOME目录下的内容; 这导致在ASP.NET以Authenticated Users权限使用System.Data.OracleClient连接Oracle数据库时报出以上错误。
要解决以上问题,只要给Authenticated Users 组加上访问Oracle Home目录的权限即可1、以Administrator权限登录Windows 2、启动Window 资源浏览器找到ORACLE_HOME目录,如C:\Oracle\ora92 3、右键弹出菜单,选择该目录共享与安全(Win2000下要点击属性) 4、点击 “安全” 页签 5、在组和用户名称列表中点击“Authenticated Users” 项. 6、在该用户的权限列表中,将“读取和运行”的选择框置为不选中状态 7、再次点击“读取和运行”的选择框,将其设置为选中状态 8、点击“高级”按钮并在权限项目中确定“Authenticated Users” 是否拥有“读取并运行”权限并应用于“该文件夹,及子文件夹和文件”. 如果不是,双击这样,并确保权限可以“应用于” “该文件夹,及子文件夹和文件”. 该项非常重要你一定要核查. 9、点击“确定” 按钮 10、重启动, 以使得所有的修改生效.
=============================================================================
注意,权限设置好后,不用机器重启的,直接IIS重启下就行了,方法,开始-运行-CMD-IISRESET
我也遇到了这个问题,按2楼说的做了,但是还是不好用。有没有别的情况会导致这种异常呢。ps,我用的是Oracle 10g。
哎,我也遇到这个问题,还是没能解决。但是我的客户端是没有安装ORACLE端的。难道客户端一定要安装客户端,那样不是很不方便吗?难于想象。
我在WIN2008服务器,重新启动了服务器才搞定的哟!可以尝试增加一个EVERYONE用户,然后给everyone用户读取和运行权限。