2010-08-13 29 views
8

Estoy tratando de conectarme a un oráculo db desde una aplicación ASP clásica, sin embargo sigo corriendo con el error ORA-12154.Oracle (0x80004005) ORA-12154: TNS: no se pudo resolver el identificador de conexión

  1. TNSNAMES.ORA está configurado correctamente

    DBSOURCE.ABcom = (DESCRIPTION = (ADDRESS_LIST = (DIRECCIÓN = (PROTOCOL = TCP) (HOST = CDBcom) (PORT = 1231)) ) (CONNECT_DATA = (SERVICE_NAME = DBSOURCE) ) )

  2. puedo tNSPING

    C: \ Documents and Settings \ USERID.A> tnsping DBSOURCE

    TNS Ping Utility para Windows de 32 bits: La versión 10.2.0.4.0 - Producción de 09-MAR-2 011 09:12:31

    Copyright (c) 1997, 2007, Oracle. Todos los derechos reservados.

    archivos de parámetros usados: C: \ oracle \ product \ 10.2.0 \ client_1 \ NETWORK \ ADMIN \ sqlnet.ora

    adaptador TNSNAMES utiliza para resolver el alias intentar ponerse en contacto (DESCRIPTION = (= ADDRESS_LIST (DIRECCIÓN = (PROTOCOL = TCP) (HOST = CDBcom) (PORT = 1231))) (CONNECT_DATA = (SERVIC E_NAME = DBSOURCE))) OK (30 ms)

  3. puedo crear un ODBC conexión y he probado la conexión que es exitosa.

  4. Puedo conectarme al oráculo db mediante sapo.
  5. He revisado mi archivo sqlnet.ora

    NAMES.DEFAULT_DOMAIN = ABCom

    SQLNET.AUTHENTICATION_SERVICES = (ninguno)

    NAMES.DIRECTORY_PATH = (TNSNAMES, EZConnect)

  6. También he comprobado que TNSNAMES.ORA es una de las rutas de mi sistema.

  7. puedo conectar a la base de datos con SQLPLUS

Este es el código que arroja el error

dim CnnStr 

Set Cnn = Server.CreateObject("ADODB.Connection") 

CnnStr="Provider=MSDAORA.1;Password=pass;User ID=user;Data Source=DBSOURCE" 

Cnn.Open CnnStr 

Estoy corriendo Windows XP Pro SP3 de 32 bits

tengo probé esto en una máquina de compañeros de trabajo y la aplicación asp no tiene problemas, ¿me falta una configuración en algún lado o estropeé mi configuración?

¡Gracias por la ayuda a todos!

Respuesta

4

Parece todos los ajustes se han comprobado pero aquí es mis sugerencias para la resolución de problemas: algunos

  • ¿Qué hay restricciones en la cuenta de IIS se está ejecutando bajo? ¿Tiene los permisos de archivo para leer los TNSNAMES? ¿Has intentado darle más derechos al usuario? ¿Incluso ejecuta IIS con Local As System Account? Recuerde volver a ponerlo como estaba.
  • Está seguro de que no hay aplicaciones de terceros como antivirus o firewall que puedan influir/bloquear el acceso. (Desactivarlas para probar, pero no se olvide de volver a habilitar :)

(¿Qué le hace finalmente se puede solucionar?)

+0

¡Muchas gracias! ¡Después de incluir USERID \ USERS en mi grupo o nombres de usuario para el permiso en el archivo TNSNAMES.ORA funcionó! – ChickSentMeHighE

+0

Funcionó como un amuleto. Gracias. Esto fue un dolor serio en el a $$. – temarsden

2

"esto funciona en una máquina de compañero de trabajo pero no mío".

ORA-12154 suele ser un problema de configuración, y sin duda lo sería en su caso. La respuesta corta es comparar su máquina con la de su colega y descubrir cuál es la diferencia.

Se debe comprobar que: Archivo

  • la TNANAMES.ORA archivo
  • la sqlnet.ora
  • el archivo LISTENER.ORA (si está utilizando una base de datos local)
+0

eso es lo que originalmente aunque también, sin embargo después de copiar el TNSNAMES.ORA y SQLNET.ora de mi compañero de trabajo (cuyas obras de conexión) todavía no resuelve el problema – ChickSentMeHighE

+0

Lo curioso es que puede hacer ping a la base de datos mediante tnsping. Crear una conexión ODBC y probarla desde la interfaz ODBC funciona bien. La conexión a través de sqlplus también funciona ... – Mike

+0

Podría haber algún servicio que necesite reiniciarse para recoger un TNSNAMES.ORA cambiado o cambiar la configuración del registro). Tal vez intente eludir TNSNAMES.ORA especificando directamente un host: puerto: servicio –

0

Intente establecer el valor de la variable de entorno TNS_ADMIN en la máquina con el problema/network/admin (o donde su archivo tnsnames.ora viva) y vea si eso ayuda.

+0

Gracias por responder, sin embargo, no resolvió el problema :( – ChickSentMeHighE

1

Si está ejecutando un sistema operativo de 64 bits y Oracle 10 intente instalar todos los parches para Oracle. Me pasó algo similar, SQL plus y todo lo demás funcionó, excepto mi programa .NET. Estaba ejecutando un programa .Net fuera de la carpeta "Archivos de programa (x86)". La instalación de parches lo solucionó.

+0

¿Puede decirme qué parche necesitamos instalar? Sería genial si puede compartir el enlace. ¡Gracias! – SharpCoder

2

¿Tiene varias casas Oracle? Compruebe que IIS no apunte a la otra ORA_HOME (y, por lo tanto, no encuentre su entrada tnsnames.ora). No estoy muy familiarizado con la configuración de IIS, así que probaría esto agregando la entrada TNS a todos los tnsnames.ora en mi PC.

1

El problema probable es la falta de permiso de lectura a los directorios de Oracle el usuario IIS se está ejecutando-como.

Como @Derick dice, temporalmente establece los permisos ampliamente abiertos en el directorio $ ORACLE_HOME (Everyone = Full Control), reinicia IIS y prueba. Cuando eso funcione, otorgue al usuario de IIS permiso de lectura contra ese directorio.

También puede confirmar este problema utilizando Process Monitor from Microsoft SysInternals, y ver el mensaje de error durante la llamada a la API CreateFile (...) para abrir los archivos DLL o leer el archivo TNSNAMES.ORA. Dada la forma en que funcionan los archivos temporales al seleccionar a través de los cursores, es posible que también necesite otorgar permisos de escritura al usuario de IIS en algunos directorios.

0

Tuve el problema similar y encontré una solución simple. No tiene que modificar ningún archivo de configuración.Esperamos que esto pueda ayudar a:

CREATE DATABASE LINK server2_db 
    CONNECT TO dbuser IDENTIFIED BY pwd USING 
'(DESCRIPTION = 
    (ADDRESS_LIST = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = server_2)(PORT = port_num)) 
    ) 
    (CONNECT_DATA = 
    (SERVICE_NAME = server2_db) 
    ) 
)'; 

La solución es desde aquí: http://oraclequirks.blogspot.com/2008/11/ora-12154-tnscould-not-resolve-service.html

Cuestiones relacionadas