System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本
System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本
在用VS.NET2005+Oracle9.2进行开发的时候,在本地测试可以通过,但是在服务器上不能实现(复制网站,发布网站都不行),报错的具体内容,没记下来,大概就是:
"System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本"
在网上查询了很长时间也没有见效,后来综合网上的很多方法,终于测试成功,现分享一下。
出错的原因:
1.虽然报的是需要安装客户端8.1.7及以上版本但是并非这个,而是.net账户没有访问Oracle\bin文件夹的权限
2.windows2003操作系统安装在NTFS格式的盘中,如果是FAT32也就没有这个问题,看来NTFS格式在安全性这方面作的确实出色。
废话少说,还是看看我的解决方法吧。
方法1:
2.点击“高级”----“立即查找”,在下面显示的账户中选择“NTWORK SERVICE”(注意:IIS6中aspnet的账户是NTWORK SERVICE;而在IIS5中是aspnet。总之,在搜索出的账户中有这两个账户中的哪一个就选哪一个,因为我没有见过这两个账户共存的,哈哈,估计不能共存吧!这个市个人见解不代表Microsoft的意见)
----将所有的权限都赋予----确定。
3.在“计算机管理”(哈哈,如果不知道怎么进入那就没办法说了)-----双击右侧的Administrators------将上一步搜索出来的账户添加进去。
4.重新启动IIS即可。可以在“运行”中输入“IISRESET”。
注意:上面这些是设置权限方面的,如果配置完上面这些报ORA-12154的错误,需要在服务器上配置“Net Configuration Assistant”。
测试的环境:Win2003(NTFS)+Oracle9.2+Vs.net2005
方法2:
1.一定要关闭Windows 防火墙; 2.找到ORACLE_HOME文件夹(服务器端是D:\oracle)。点击右键,选属性--安全,在组或用户栏中选“Authenticated Users”,在权限列表中把“读取和运行”的权限去掉,再按应用(据说这是Oracle的一个Bug,在9i版本中也存在);重新选上“读取和运行”权限,点击应用;选权限框下面的“高级”按钮,确认
“Authenticated Users”后面的应用于是“该文件夹、子文件夹及文件”,按确定把权限的更改应用于该文件夹;
3.重新启动计算机,让权限设置生效(也可以不重新启动,在运行里运行cmd打开命令窗口,运行命令iisreset,重启下IIS,就可以正常访问);
4.最后客户端如果还不能访问,(我客户端用的是VS2005,用的是其内置的IIS测试代码)重新启动VS2005即可。