我是使用.net+oracle开发的程序,在局域网内使用正常,但通过外网访问时就无法连接到数据库。前两天还可以的,就是放假回来,好像期间服务器段过电,但我不知道什么地方除了原因?到底是数据库还是.net的服务还是网络问题,还没法调试查看,因为通过局域网看都是正常的。请各位高手帮帮忙。顶者有分:)

解决方案 »

  1.   

    查看下坚听服务,是不是有异常,
    lsnrctl 
    lsnrctl>status通过局域网能使用连接串能连接,就证明数据库没有问题。sqlplus user/passwd@test
      

  2.   

    我看到的监听服务的信息应该是正常的
    LSNRCTL> status
    连接至(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=jsjd)(PORT=1521)))
    LISTENER 的 STATUS
    ------------------------
    别名                      LISTENER
    版本                      TNSLSNR for 32-bit Windows: Version 8.1.7.0.0 - Produc
    tion
    启动日期                  08-5月 -2005 11:48:41
    正常运行时间              0 天 5 小时 12 分 31 秒
    跟踪级别                  off
    安全性                    OFF
    SNMP                      OFF
    监听器参数文件          D:\oracle\ora81\network\admin\listener.ora
    监听器日志文件          D:\oracle\ora81\network\log\listener.log
    服务摘要..
      PLSExtProc            具有1个服务处理程序
      hbmis         具有1个服务处理程序
      hbmis         具有2个服务处理程序
    命令执行成功用sqlplus连接都没有问题就是通过外网时有问题
      

  3.   

    问题解决了。我不知道是什么原因,我把处理过程跟大家分享一下。
    首先是重启了,还是有问题,其间发现启动时agent启动时出错(不知道有没有关系),错误为3221356559,于是用google搜了一下,然后把$ora_home\network\agent目录(我的机器就是d:\oracle\ora81\network\agent)下删除所有的*.q和*.ora文件,启动agent服务,然后测试,还是不行。
    然后想看看到底提示的信息是什么,于是在程序出错的地方加了try,再在服务器上进到$win_home\microsoft.net\framework\v1.1.4322目录下运行aspnet_regiis.exe -i,之后又重启了oracle服务和IIS服务,回来一试,居然行了,由于后面几步是一起试的,所以也不知道到底是哪里的问题。
    不过的结贴了,如果哪位知道具体的原因,又想告诉我,
    谢谢大家