求:"需要 Oracle 客户端软件 8.1.7 或更高版本"解决办法

jxyaolp 2006-06-28 11:13:23
操作系统为windows 2003,Oracle客户端版本为9.2
VS2005在开发阶段访问Oracle正常,但是在IIS配置完后出现系统提示"System.Data.OracleClient 需要Oracle 客户端软件8.1.7 或更高版本"。
B/S结构系统,项目在调试时没有问题.但布署到ISS中就出现了问题.
...全文
13908 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Knight94 2006-06-28
oracle的访问需要客户端软件支持。
  • 打赏
  • 举报
回复
Knight94 2006-06-28
在服务器端升级mdac版本,vs2005好像是2.8以上版本。
  • 打赏
  • 举报
回复
BlueDog 2006-06-28
你是不是没安装客户端,可以到网上下一个Oracle的简易客户端
  • 打赏
  • 举报
回复
jxyaolp 2006-06-28
谢谢各位的:
我找到了解决方法了:
下面是网上COPY的内容:

---------------------------------------
安装完ASP.NET,Oracle9i客户端后,使用System.Data.OracleClient访问Oracle数据库如果出现这种错误:
System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.

原因
Oracle 9i Release 2 客户端在安装到Windows的NTFS分区下时的安全认证设置不正确,引起本机的Authenticated Users用户无法看到ORACLE_HOME目录下的内容; 这导致在ASP.NET以Authenticated Users权限使用System.Data.OracleClient连接Oracle数据库时报出以上错误。

解决方法:
在oracle/bin目录,加入给以下用户/组,授完全权限:
asp.net machine account
administrator
authenticated users
并且将Asp.net加入到administrator组,再重启IIS

上面这种方法是实践过可行的,

网上还有一种方案,大抵相同,有细小区别,其实不主张将asp.net加入administrator,也不主开开过份大的权限,但下面这种方法,试过似乎不可行:

以Administrator权限登录Windows.
启动Window 资源浏览器找到ORACLE_HOME目录,如C:\Oracle\ora92
右键弹出菜单,选择该目录共享与安全(Win2000下要点击属性)
点击 “安全” 页签
在组和用户名称列表中点击“Authenticated Users” 项.
在该用户的权限列表中,将“读取和运行”的选择框置为不选中状态
再次点击“读取和运行”的选择框,将其设置为选中状态
点击“高级”按钮并在权限项目中确定“Authenticated Users” 是否拥有“读取并运行”权限并应用于“该文件夹,及子文件夹和文件”. 如果不是,双击这样,并确保权限可以“应用于” “该文件夹,及子文件夹和文件”. 该项非常重要你一定要核查.
点击“确定” 按钮
重启动, 以使得所有的修改生效.

Oracle 9.2下的“System.Exception: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater”
今天在连接Oracle的时候碰到一个问题,我的机器装的是Oracle9.2客户端,当在asp.net应用中使用数据访问的组件(调用System.Data.OracleClient)时,程序报“System.Exception: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater”的错误,无法创建OracleConnection,但在同一台机器上用winfom客户端又能够正常访问到数据库。更加奇怪的是,我把应用部署到一台安装了Oracle 8.17客户端的机器上时,却能够正常运行。
找了半天 ,终于搞清楚了原因。原来当Oracle 9.2运行在NTFS的分区上时,对于某些非administrator组的用户,ORACLE_HOME 目录是不可见的,而在windows server 2003下asp.net应用使用的帐户是netword service,因此无法创建oracle连接,只要重设一下ORACLE_HOME目录的权限就可以了。步骤如下:
1、以管理员的用户登录;
2、找到ORACLE_HOME文件夹(我的是C:\oracle\ora92),点右键,选属性--安全,在组或用户栏中选“Authenticated Users”,在下面权限列表中把“读取和运行”的权限去掉,再按应用;重新选上“读取和运行”权限,点击应用;选权限框下面的“高级”按钮,确认“Authenticated Users”后面的应用于是“该文件夹、子文件夹及文件”,按确定把权限的更改应用于该文件夹;
3、重新启动计算机,让权限设置生效(请注意,这一步很重要);
4、登录后运行asp.net应用,正常取得Oracle数据库的数据。
  • 打赏
  • 举报
回复
Knight94 2006-06-28
sorry!

解决办法:找到Oracle客户端的安装目录,设置Network Service对该目录具有访问权限即可。
  • 打赏
  • 举报
回复
Knight94 2006-06-28
设置aspnet用户对oracle目录的访问权限问题,将对Oracle的访问权限改为完全控制
  • 打赏
  • 举报
回复
jxyaolp 2006-06-28
我还是布署在我开发用的机子上,机上装有Microsoft Visual Studio 2005
Oracle9.2数据库及客户段
OFFice 2003
  • 打赏
  • 举报
回复
Knight94 2006-06-28
你是布署程序吗?
如果是的话,需要按照我上面所说的进行配置。
  • 打赏
  • 举报
回复
jxyaolp 2006-06-28
我开发是用,Microsoft Visual Studio 2005
楼上两位的问题是没有的。
  • 打赏
  • 举报
回复
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2006-06-28 11:13
社区公告

让您成为最强悍的C#开发者