解决asp.net 连结oracle数据库ORA-12560: TNS: 协议适配器错误(原创)

先说说在网上看到有位TX的解决方法,具体如下: 
 1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面 板,启动oraclehome92TNSlistener服务。
2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务

面板,启动oracleserviceXXXX,XXXX就是你的database SID.
3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SID设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下输set oracle_sid=XXXX,XXXX就是你的database SID.
经过以上步骤,就可以解决问题。

再谈谈我的看法,作为对上面情况解决不了问题的时候di一点补充:
一般而言,出现上面几种问题的可能性在于监听设置不对,或者服务名配置不对造成,也可能是因为重oracle客户端造成。一般,这种情况下,运行SQLPLUS连接数据库也会出现ORA-12560错误。
我碰见的出错情况:我的机器(客户端)sqlplus连接服务器的oracle数据库没有问题,调用程序访问oracle服务器时,程序会post上面的错误。我的程序是通过Provider=OraOLEDB.Oracle的方式连结oracle数据库的,另外,补充一点,相同的程序,在其它机器上运行正常。
通过一番努力思考+探索,终于解决,将我的独创解决过程告与大家:
1  完全卸载oracle客户端,并手工查找删除oralce客户端在regedit中的设置,手工删除oracle客户端在操作系统中的文件。
2  IIS配置中,将asp.net程序所在的虚拟目录的权限设置大一点,即匿名用户,必须允许访问数据库。我测试正确通过后,我只改变匿名用户的权限,也会造成ORA-12560错误。
3  确保.net framework下面(WINNT\Microsoft.NET\Framework)下,框架版本1.4.0以上且唯一。
4  确保MDAC版本2.7以上。MDAC_TYP.EXE可以到微软网站去下载。
5  安装oracle_net.msi .
以上步骤,按实际环境来选择决定。我的步骤很罗嗦,但万无一失:)

posted @ 2005-01-06 10:43  让心灵去旅行  阅读(3717)  评论(4)    收藏  举报