在用VS.NET2005+Oracle9.2进行开发的时候,在本地测试可以通过,但是在服务器上不能实现(复制网站,发布网站都不行),报错的具体内容,没记下来,大概就是:
"System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本"
在网上查询了很长时间也没有见效,后来综合网上的很多方法,终于测试成功,现分享一下。
出错的原因:
1.虽然报的是需要安装客户端8.1.7及以上版本但是并非这个,而是.net账户没有访问Oracle\bin文件夹的权限
2.windows2003操作系统安装在NTFS格式的盘中,如果是FAT32也就没有这个问题,看来NTFS格式在安全性这方面作的确实出色。
废话少说,还是看看我的解决方法吧。
1.在Oracle\bin文件夹上右键-------共享和安全------安全-----点击“添加”按钮,出现下面的界面
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
本文测试过win2008+oracle 10+vs.net 2008 也可以解决这个问题。