解决ASP.NET连接ORACLE10G失败的方法

最近开发ASP.NET项目时,使用System.Data.OracleClient类访问Oracle数据库出现这种错误:

System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.

原因:Oracle 客户端在安装到WindowsNTFS分区下时的安全认证设置不正确,引起本机的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数据库服务器在同一台机器,解决方法相同。

posted on 2008-07-28 17:13  RIVERSPIRIT  阅读(806)  评论(0)    收藏  举报