8
votes

Oracle (0x80004005) ORA-12154: TNS: Impossible de résoudre l'identifiant de connexion

J'essaie de vous connecter à une DB Oracle à partir d'une application ASP Classic, mais je continue à courir dans l'erreur ORA-12154.

  1. tnsnames.ora est configuré correctement

    dbsource.a.b.com = (Description = (Adresse_list = (Adresse = (protocole = TCP) (hôte = c.d.b.com) (port = 1231)) ) (Connect_Data = (Service_Name = dbsource) ) )

  2. je peux tnsping

    C: \ Documents et paramètres \ userid.a> Tnsping dbsource

    Utilitaire TNS Ping pour Windows 32 bits: version 10.2.0.4.0 - Production sur 09-Mar-2 011 09:12:31

    Copyright (c) 1997, 2007, Oracle. Tous droits réservés.

    Fichiers de paramètres utilisés: C: \ oracle \ product \ 10.2.0 \ client_1 \ Network \ admin \ sqlnet.ora

    Adaptateur TnsNames utilisé pour résoudre l'alias Tentative de contacter (description = (adresse_list = (adresse = (protocole = TCP) (Hôte = c.d.b.com) (port = 1231))) (Connect_Data = (Service E_name = dbsource))) OK (30 ms)

  3. Je peux créer une connexion ODBC et j'ai testé la connexion qui réussit.

  4. Je peux me connecter à l'oracle DB à travers le crapaud.
  5. J'ai vérifié mon fichier sqlnet.ora

    noms.default_domain = a.b.com

    sqlnet.authentication_services = (aucun)

    noms.directory_path = (TNSNAMES, EZConnect)

  6. J'ai aussi vérifié que les Tnsnames.ora comme l'un de mes chemins système.

  7. Je peux me connecter à la DB avec SQLPLUS

    voici le code qui jette l'erreur xxx

    i exécuté windows xp pro 32bit sp3

    J'ai testé cette Sur une machine de collègue et l'application ASP n'a aucun problème, je manque une configuration quelque part ou ai-je gâché ma configuration?

    Merci pour l'aide de tout le monde!


0 commentaires

7 Réponses :


2
votes

"Cela fonctionne sur une machine de collègue mais pas le mien. "

ORA-12154 est généralement un problème de configuration et il semblerait certainement l'être dans votre cas. La réponse courte consiste à comparer votre machine avec votre collègue et à déterminer quelle est la différence.

Les choses à vérifier incluent:

  • le fichier tnanames.ora
  • le fichier sqlnet.ora
  • Le fichier listiers.ora (si vous utilisez une base de données locale)

3 commentaires

À l'origine, c'est ce que je fais aussi aussi, cependant après avoir copié les TNSNAMES.ORA et SQLNET.ORA de mon collègue (dont la connexion fonctionne), il ne résout toujours pas le problème


L'intrus est là qu'il est capable de ping la base de données via Tnsping. Créer une connexion ODBC et le tester à partir de l'interface ODBC fonctionne bien. Connexion via SQLPLUS fonctionne également ...


Pourrait être un service qui a besoin de redémarrer pour récupérer un changement de paramètre Tnsnames.ora ou de registre). Peut-être essayez peut-être de contourner directement Tnsnames.ora en spécifiant directement un hôte: port: service



0
votes

Essayez de définir la valeur de la variable d'environnement TNS_Admin sur la machine avec le problème sur / réseau / admin (ou où vit votre fichier Tnsnames.ora) et voir si cela aide.


0 commentaires

1
votes

Si vous exécutez un système d'exploitation 64 bits et oracle 10, essayez d'installer toutes les patchs pour Oracle. Quelque chose de similaire est arrivé à moi, SQL Plus et tout le reste travaillait, sauf mon programme .NET. J'exécute un programme .NET hors du dossier "Fichiers du programme (x86)". Installation des correctifs fixe.


1 commentaires

Pouvez-vous s'il vous plaît dites-moi quelle patch nous devons nous installer. Ce serait génial si vous pouvez partager le lien. Merci !!



2
votes

Avez-vous plusieurs maisons Oracle? Vérifiez que IIS ne pointe pas l'autre ora_home (et ne trouvant pas votre entrée Tnsnames.ora). Je ne connais pas la configuration IIS, je ne vais donc pas tester cela en ajoutant l'entrée TNS à tous Tnsnames.ora sur mon PC.


0 commentaires

4
votes

Il semble que tous les paramètres ont été vérifiés mais voici mes suggestions pour un problème de prise de vue:

  • Que diriez-vous des restrictions sur le compte IIS fonctionnent sous? At-il les autorisations de fichier pour lire les noms TNSNAMES? Avez-vous essayé de donner plus de droits à l'utilisateur? Même exécuter IIS avec un compte système local? N'oubliez pas de le remettre de la façon dont c'était.
  • Vous êtes sûr qu'il n'y a pas d'application 3ème partie telle anti-virus ou pare-feu qui pourrait influencer / bloquer l'accès. (Désactivez-les à tester mais n'oubliez pas de réactiver :)

    (qu'avez-vous enfin faire pour le résoudre?)


2 commentaires

Merci beaucoup! Après inclure les utilisateurs \ userid \ dans mon groupe ou nom d'utilisateur pour la permission dans le fichier Tnsnames.ora, cela a fonctionné!


Travaillé comme un charme. Merci. Ce fut une douleur grave dans le $$.



1
votes

Le problème probable est le manque d'autorisation de lecture sur les répertoires Oracle par l'utilisateur IIS est en cours d'exécution.

comme @derick dit, temporairement définit les autorisations grandes ouvertes sur le répertoire $ oracle_home (tout le monde = contrôle complet), redémarrez IIS et test. Lorsque cela fonctionne, donnez l'autorisation de lecture de l'utilisateur IIS contre ce répertoire.

Vous pouvez également confirmer ce problème à l'aide de moniteur de processus de Microsoft Sysinternals , et Voir le message de défaillance pendant l'appel de l'API Createefile (...) pour ouvrir les DLL ou lire le fichier TNSNAMES.ORA. Compte tenu de la manière dont les fichiers temporaires fonctionnent lors de la sélection via des curseurs, vous devrez peut-être également donner aux autorisations d'écriture de l'utilisateur IIS dans certains répertoires.


0 commentaires

0
votes

J'ai eu le problème similaire et j'ai trouvé une solution simple. Vous n'avez pas à modifier les fichiers de configuration. J'espère que cela peut vous aider:

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)
   )
 )';


0 commentaires