先总结下解决办法再详细写吧。解决的办法包括修改配置文件,增加用户并修改权限,设置环境变量。
最近因为公司的一个项目的服务器用的Oracle存储的数据,我在远程访问的时候总弹出提示"System.Data.OracleClient 需要Oracle 客户端软件8.1.7 或更高版本"。Oh,my god!忘了我电脑上只装了SQL Server,没装Oracle数据库或者Oracle客户端,然后跑公司服务器上找Oracle安装,从9i、10g R2、11g R1点了个遍就是不能安装,然后谷歌了下,原来是win7的原因,然后按网上教的办法,把refhost.xml这个文件修改了下:
就是把带vista的那几行用
<!--Microsoft Windows 7->
<OPERATING_SYSTEM>
<VERSION VALUE="6.1"/>
</OPERATING_SYSTEM>
代替,再就是什么用户账户控制设置拉到最低和关闭windows防火墙之类的(这两个我是这样做的,不处理不知道能通过验证不),弄完后以管理员身份运行,启动安装,另我窘迫的是我习惯性把程序安装到D:\Program Files这个目录下结果Oracle的安装目录不支持空格,没办法,跑D盘新建了个文件夹,然后终于把Oracle 11g R1装好了。然后赶紧跑去测试,哎,我承认我这个新手心急了,忘了配置了,结果果断的悲剧的发现还是“System.Data.OracleClient 需要Oracle 客户端软件8.1.7 或更高版本”,然后老老实实的Net Configuration Assistant进行配置(我的配置结果存储在那个D:\Oracle\product\11.1.0\db_1\NETWORK\ADMIN\tnsnames.ora中,(D:\Oracle\product\11.1.0\db_1)为我安装Oracle的时候的目录),配置好去刷新了下还是不行,怎么回事呢?我又去谷歌了下,原来是win7的权限问题,需要添加Network Service用户并设置它具有访问权限(还可能要把Authenticated Users这个用户的读取和执行权限重启),为了确保无误,我跑计算机管理\本地用户和组下\组下,在ora_dba下面添加了两个用户Authenticated Users和Network Service(网上还有种说法在Administrators中增加Network Service用户,我感觉不用,反正我没加),然后去设置了下ORACLE_HOME环境变量为D:\Oracle\product\11.1.0\db_1(就是你安装的时候选的那个目录,有的可能是D:\Oracle,当然还有许多可能),LD_LIBARY_PATH是否为D:\*\BIN,NLS_LANG查看是否为AMERICAN_AMERICA.ZHS16GBK,Path中查看有无D:\Oracle\product\11.1.0\db_1\bin;,还有查看TNS_ADMIN是否为D:\*\BIN。然后重启IIS,结果我终于查看页面了。
装好PLSQL Developer后,先不登陆,用注册机生成个注册码或者网上找个注册码进行注册并将注册文件aalf.dat拷贝至PL/SQL Developer安装目录下进行破解,然后启动PLSQL Developer,我发现我无法登录进Oracle库,原来又是环境变量在作怪,TNS_ADMIN中新增值“D:\Oracle\product\11.1.0\db_1\NETWORK\ADMIN”,然后确定再连接,终于连接成功了。