月耳思进

人生在世如身处荆棘之中,心不动,人不妄动,不动则不伤;如心动则人妄动,伤其身痛其骨,于是体会到世间诸般痛苦。
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
安装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” 是否拥有“读取并运行”权限并应用于“该文件夹,及子文件夹和文件”. 如果不是,双击这样,并确保权限可以“应用于” “该文件夹,及子文件夹和文件”. 该项非常重要你一定要核查.
  • 点击“确定” 按钮
  • 重启动, 以使得所有的修改生效.