asp页面代码 
<%
  Dim Conn
  Dim ConnStr
  Set Conn = Server.CreateObject("ADODB.Connection")
  ConnStr = "Provider=OraOLEDB.Oracle.1;Password=SHOPMAN;Persist Security Info=True;User ID=SHOPMAN;Data Source=orcl "
  Conn.Open ConnStr
%>提示:
错误类型:
OraOLEDB (0x80004005)
ORA-12154: TNS: 无法解析指定的连接标识符
/oracle/ConnDB.asp, 第 6 行orcle的配置:
# tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.ORCLSERVER =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 08FFD6C7499D459)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 58.199.20.19)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

解决方案 »

  1.   

    在命令行测试一下orcl是否连通
    c:\>tnsping orcl

    c:\>sqlplus SHOPMAN/SHOPMAN@orcl
      

  2.   

    tnsping orcl
     用这个不能连接成功 
    不知道如何配置才可以使用哦!
      

  3.   

    tnsnames.ora中
    SERVICE_NAME = orcl
    换成SID = orcl吧
      

  4.   

    用到的sqlnet.ora 文件内容为
    # sqlnet.ora Network Configuration File: D:\oracle\product\10.2.0\client_1\network\admin\sqlnet.ora
    # Generated by Oracle configuration tools.# This file is actually generated by netca. But if customers choose to 
    # install "Software Only", this file wont exist and without the native 
    # authentication, they will not be able to connect to the database on NT.SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
      

  5.   

    sqlnet.ora   感觉是这个文件的配置有问题 但是不知道哪里有问题!
      

  6.   

    那就进一步诊断:
    58.199.20.19 能ping通吗?
    08FFD6C7499D459 能ping通吗?
    telnet <这两个名> 1521能通吗?
    如果能通,再看看你的SID到底是不是orcl。这个也很关键。
      

  7.   


    sid
    是ORCL哦!
    用TELNET 的时候提示打开23端口失败 无法连接!
      

  8.   

    telnet <这两个名> 1521
    后边跟的是1521,不是缺省的23,你没用过这个命令吗?
      

  9.   

    是跟 1521 但是提示 23。。
    。也不知道为什么
    后来找到解决办法了  将SQLNET文件里面的NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) 这句注释掉就解决了!谢谢大家的帮忙。结贴咯!