日期:2014-05-17  浏览次数:21326 次

C#连接oracle,诡异的ora-12154错误
服务器上装有oracle9.2客户端,使用sql plus和pl/sql developer都可以正常连接该数据库

一个C#写的webService连接oracle的程序,放进IIS后显示ora-12154错误,无法解释的服务名
用C#再写个winform程序连接该oracle数据库,仍然是ora-12154错误

连接语句"data source = SRSRV;user=用户名; password=密码;";

上网查了很久,该程序目录不深,路径中也不包含中文或者特殊字符

检查了tnsname.ora文件,是用tnsping 数据库服务名能够ping通

请问会是什么问题,很急

谢谢各位了
------解决方案--------------------
你有没有引用oracleclient啊?
------解决方案--------------------
先谢谢楼上,这么2的错误不会犯的,编译都不会通过的

自己已经解决

不能仅用服务名

找到机器上安装的oracle客户端里面的tnsname.ora文件
查看与之对应的
服务名 =
  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = ip号)(PORT = 1521))
  (CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = 服务名)
  )
  )
复制(DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = ip号)(PORT = 1521))
  (CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = 服务名)
  )
  )
改写连接字符串
 "data source =(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ip地址)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = 服务名))); user=用户名; password=用户密码;";


可能在自己本地测试时oracle数据库装在本机,而发布的 服务器上的oracle仅有客户端的缘故吧
------解决方案--------------------
困扰了两天的问题解决了!多谢多谢!!
引用:
先谢谢楼上,这么2的错误不会犯的,编译都不会通过的

自己已经解决

不能仅用服务名

找到机器上安装的oracle客户端里面的tnsname.ora文件
查看与之对应的
服务名 =
  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = ip号)(PORT = 1521))
  (CONNECT_……