iis连接oracle数据库的历程!

3/7/2017来源:SQL技巧人气:1691

由于项目需要,得使用Oracle数据库,版本为10G,平台是.NET。之前部署了一个在win2003下的虚拟机平台,能正常使用。

最近弄了个ESXI6.0的虚拟机,在上面安装了另外的一套win2003,准备把产品部署在上面。

Oralce安装好了,连接时就又来坑了。。搞了大半天。才搞好,现在记录一下。

最开始时使用netstat -an查看,1521端口没有在监听。在“服务”管理器里,看到****TNSListener服务也是没有启动,右键启动时,提示“***启动后又关闭***”。

各种百度、BING都看了,不知道什么问题。最后,查了一下环境变量:ORACLE_HOME,发现值为:c:\oralce,看了一下其他的配置,应该不对,改成了:c:\oracle\PRoduct\10.1.0\Db_1\,然后重启服务器,OK了,监听端口了,服务也提示是“已启动”状态。

但是,还是连接不上,提示:"System.Data.OracleClient 需要 Oracle 客户端软件 version 8.1.7 或更高版本"。这个问题在原来配置时也遇到,是版本不对,找了新版本后就能连接了。但是,这次使用的新版本,还是这样提示。头痛。。。。

百度查了,说是权限问题,按照上面的提示设置了权限,还是不行。。。又折腾了两小时,最后发现,我之前 设置的权限是针对Administrators和aspNET账户的。iis6下要给BIN文件夹设置Network Service组全部权限,iisreset后就不提示了。

好啦,不提示这个版本问题了,新问题又来了。。。

提示:"ORA-12514: TNS:listener does not currently know of service requested in connect descriptor"

字面意思是找不到指定的Service。看了一下listener.ora里,没有我指定的Service.使用lsnrctl status查看,也没看到指定Service名称的实例在运行。

好了,就是它了,打开listener.ora,添加:

(SID_DESC = (GLOBAL_DBNAME = oracle) (ORACLE_HOME = /opt/oracle/product/9.2.0.4) (SID_NAME = 服务名称) )

重启监听,重启iis,数据库正常连接上了。