解决ASP.NET连接ORACLE10G失败的方法
System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.
原因:Oracle 客户端在安装到Windows的NTFS分区下时的安全认证设置不正确,引起本机的Asp.net用户无法看到ORACLE_HOME目录下的内容; 这导致在ASP.NET使用System.Data.OracleClient连接Oracle数据库时报出以上错误,win2003+vs2005和组合比较容易产生该问题。
总结如下解决方法:
方法一:
1、以Administrator权限登录Windows.
2、找到ORACLE安装目录,如C:\Oracle
右键弹出菜单,选择该目录共享与安全(Win2000下要点击属性)
点击 “安全” 页签,在组和用户名称中,添加ASP.NET用户。并在列表中点击“Asp.net” 项,在该用户的权限列表中,将“读取和运行”的选择框置为不选中状态,然后“应用”;
再次点击“读取和运行”的选择框,将其设置为选中状态,然后“应用”。
3、点击“高级”按钮,并在权限项目中选定“Asp.net是否拥有“读取并运行”权限并应用于“该文件夹,及子文件夹和文件”。最好重新启动机器,测试连接是否已经正常了。
4、最后,实在不行再将Asp.net用户加入到administrator组,再重启机器,没有办法的办法,太不安全。
如果方法一仍然不能正常连接,参照方法二
方法二:
使用前面讲的免安装ORACLE客户端的方法配置好oracle连接,为ASPNET户分配oracleinstantclient解压缩后文件夹的读取权限,去掉ASPNET用户对ORACLE主目录的读取权限,同样可使ASP.NET应用访问ORACLE数据库。同时并不与已经安装的ORACLE客户端冲突。
注:如果ASP.NET应用和ORACLE数据库服务器在同一台机器,解决方法相同。