请教一个关和C#连接Oracle数据库的问题

yelang 2014-11-07 10:22:14
我的一个项目,在本地计算机测试连接远程数据库192.168.1.20的时候就能够正常连接,但是把项目发布到远程服务器192.168.1.20上以后,还是连接这个数据库,就报错:System.Exception: ORA-12560: TNS: 协议适配器错误。请问这是个什么情况啊?应该怎么解决呢?我在网上查都说是监听和服务没有能够启动,但是我去看了,监听和服务都启动了。
...全文
198 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2014-11-10
  • 打赏
  • 举报
回复
引用 20 楼 yelang 的回复:
[quote=引用 18 楼 Z65443344 的回复:] 你在笔记本上连接远程数据库的时候,用什么东西连接的,winform程序还是网站程序源码VS调试?
用的是网站源码调试的。我刚才发的图片,上面的那张就是我在笔记本电脑上调 试的结果。[/quote] 你远程连接好了之后,发布到服务器IIS上,web.config文件改了吗 远程连接和本地连接使用的数据库连接字符串应该是不一样的吧 具体还要看你oracle服务端或客户端里到底怎么配置的数据库别名
yelang 2014-11-10
  • 打赏
  • 举报
回复
引用 18 楼 Z65443344 的回复:
你在笔记本上连接远程数据库的时候,用什么东西连接的,winform程序还是网站程序源码VS调试?
用的是网站源码调试的。我刚才发的图片,上面的那张就是我在笔记本电脑上调 试的结果。
yelang 2014-11-10
  • 打赏
  • 举报
回复
这个是我在我的电脑上调试时候的结果,没有问题,可以连接数据库。


这个是我发布到服务器上之后访问页面的结果,报协议错误。我调试和发布以后连接的是同一个数据库。
於黾 2014-11-10
  • 打赏
  • 举报
回复
你在笔记本上连接远程数据库的时候,用什么东西连接的,winform程序还是网站程序源码VS调试?
yelang 2014-11-10
  • 打赏
  • 举报
回复
引用 14 楼 Z65443344 的回复:
[quote=引用 12 楼 yelang 的回复:] 都是32位的,我也在服务器上安装了32位的客户端,还是不好使,报同样的错误 。 而且最让我不解的就是我用笔记本电脑调试时候是好用的,只要发布到服务器上就报适配器协议错误。我服务器的操作系统是WINDOWS 2008 R2 。网站和数据库在同一台服务器上。
2008 r2是64位操作系统 你确定安装的是32位的oracle服务端吗 查看一下数据库实例名是否配置对了 在服务器上运行oracle客户端看能否连接上[/quote] 我发个图片帮我看一下吧。
yelang 2014-11-10
  • 打赏
  • 举报
回复
引用 14 楼 Z65443344 的回复:
[quote=引用 12 楼 yelang 的回复:] 都是32位的,我也在服务器上安装了32位的客户端,还是不好使,报同样的错误 。 而且最让我不解的就是我用笔记本电脑调试时候是好用的,只要发布到服务器上就报适配器协议错误。我服务器的操作系统是WINDOWS 2008 R2 。网站和数据库在同一台服务器上。
2008 r2是64位操作系统 你确定安装的是32位的oracle服务端吗 查看一下数据库实例名是否配置对了 在服务器上运行oracle客户端看能否连接上[/quote] 操作系统是32位的,不是R2,我说错了。 在服务器上运行Oracle客户端、PL/SQL、SQL Tools全都能连上,用SQL Plus也能连上,就是我的程序网页不行。我很郁闷。实例名配置的也没有问题啊。
yelang 2014-11-10
  • 打赏
  • 举报
回复
引用 13 楼 zhanglong19891129 的回复:
连接 不上 你说的 那个 IP地址 的 服务求。
内部网站,不允许外面接的。
於黾 2014-11-10
  • 打赏
  • 举报
回复
引用 12 楼 yelang 的回复:
都是32位的,我也在服务器上安装了32位的客户端,还是不好使,报同样的错误 。 而且最让我不解的就是我用笔记本电脑调试时候是好用的,只要发布到服务器上就报适配器协议错误。我服务器的操作系统是WINDOWS 2008 R2 。网站和数据库在同一台服务器上。
2008 r2是64位操作系统 你确定安装的是32位的oracle服务端吗 查看一下数据库实例名是否配置对了 在服务器上运行oracle客户端看能否连接上
zhanglong19891129 2014-11-10
  • 打赏
  • 举报
回复
连接 不上 你说的 那个 IP地址 的 服务求。
yelang 2014-11-10
  • 打赏
  • 举报
回复
引用 11 楼 Z65443344 的回复:
[quote=引用 9 楼 yelang 的回复:] [quote=引用 5 楼 Z65443344 的回复:] 不会是网站所在的服务器上没有安装oracle客户端吧
网站服务器跟数据数库在一台电脑上。[/quote] 如果你使用的dll是32位的,而oracle是64位的,那是连接不上的 你安装个32位的oracle客户端就好了[/quote] 都是32位的,我也在服务器上安装了32位的客户端,还是不好使,报同样的错误 。 而且最让我不解的就是我用笔记本电脑调试时候是好用的,只要发布到服务器上就报适配器协议错误。我服务器的操作系统是WINDOWS 2008 R2 。网站和数据库在同一台服务器上。
milozy1983 2014-11-07
  • 打赏
  • 举报
回复
远程服务器能ping通这个192.168.1.20内网地址吗?另外就是将oracle服务端那台服务器的防火墙都关了看看。一般是listen服务没开才会访问不到。还有就是你要注意连接的那台机器最好32位和64位的oracle client都装一下。
於黾 2014-11-07
  • 打赏
  • 举报
回复
引用 9 楼 yelang 的回复:
[quote=引用 5 楼 Z65443344 的回复:] 不会是网站所在的服务器上没有安装oracle客户端吧
网站服务器跟数据数库在一台电脑上。[/quote] 如果你使用的dll是32位的,而oracle是64位的,那是连接不上的 你安装个32位的oracle客户端就好了
yelang 2014-11-07
  • 打赏
  • 举报
回复
引用 4 楼 lovelj2012 的回复:
[quote=引用 楼主 yelang 的回复:] 我的一个项目,在本地计算机测试连接远程数据库192.168.1.20的时候就能够正常连接,但是把项目发布到远程服务器192.168.1.20上以后,还是连接这个数据库,就报错:System.Exception: ORA-12560: TNS: 协议适配器错误。请问这是个什么情况啊?应该怎么解决呢?我在网上查都说是监听和服务没有能够启动,但是我去看了,监听和服务都启动了。
用odbc、pl/sql试一下,看能连上数据库不?[/quote] 用SQL Tools和SQLPlus在服务器本地和远程都能连接上数据库。
yelang 2014-11-07
  • 打赏
  • 举报
回复
引用 5 楼 Z65443344 的回复:
不会是网站所在的服务器上没有安装oracle客户端吧
网站服务器跟数据数库在一台电脑上。
yelang 2014-11-07
  • 打赏
  • 举报
回复
引用 3 楼 rtdb 的回复:
多半还是远程服务器的防火墙问题
防火墙是关着的。
jun471537173 2014-11-07
  • 打赏
  • 举报
回复
tnsping 能通吗
於黾 2014-11-07
  • 打赏
  • 举报
回复
不会是网站所在的服务器上没有安装oracle客户端吧
江南小鱼 2014-11-07
  • 打赏
  • 举报
回复
引用 楼主 yelang 的回复:
我的一个项目,在本地计算机测试连接远程数据库192.168.1.20的时候就能够正常连接,但是把项目发布到远程服务器192.168.1.20上以后,还是连接这个数据库,就报错:System.Exception: ORA-12560: TNS: 协议适配器错误。请问这是个什么情况啊?应该怎么解决呢?我在网上查都说是监听和服务没有能够启动,但是我去看了,监听和服务都启动了。
用odbc、pl/sql试一下,看能连上数据库不?
rtdb 2014-11-07
  • 打赏
  • 举报
回复
多半还是远程服务器的防火墙问题
江南小鱼 2014-11-07
  • 打赏
  • 举报
回复
造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个: 1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板, 启动oraclehome92TNSlistener服务。 2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务 面板,启动oracleserviceXXXX,XXXX就是你的database SID. 3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SI D设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建 ,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下 输set oracle_sid=XXXX,XXXX就是你的database SID. 经过以上步骤,就可以解决问题。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧