J'essaie de vous connecter à une DB Oracle à partir d'une application ASP Classic, mais je continue à courir dans l'erreur ORA-12154.
tnsnames.ora est configuré correctement p>
dbsource.a.b.com = (Description = (Adresse_list = (Adresse = (protocole = TCP) (hôte = c.d.b.com) (port = 1231)) ) (Connect_Data = (Service_Name = dbsource) ) ) p> li>
je peux tnsping p>
C: \ Documents et paramètres \ userid.a> Tnsping dbsource p>
Utilitaire TNS Ping pour Windows 32 bits: version 10.2.0.4.0 - Production sur 09-Mar-2 011 09:12:31 P>
Copyright (c) 1997, 2007, Oracle. Tous droits réservés. P>
Fichiers de paramètres utilisés: C: \ oracle \ product \ 10.2.0 \ client_1 \ Network \ admin \ sqlnet.ora p>
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) p> li>
Je peux créer une connexion ODBC et j'ai testé la connexion qui réussit. P> li>
J'ai vérifié mon fichier sqlnet.ora p>
noms.default_domain = a.b.com p>
sqlnet.authentication_services = (aucun) p>
noms.directory_path = (TNSNAMES, EZConnect) P> LI>
J'ai aussi vérifié que les Tnsnames.ora comme l'un de mes chemins système. P> li>
Je peux me connecter à la DB avec SQLPLUS P> LI> ol>
voici le code qui jette l'erreur p> i exécuté windows xp pro 32bit sp3 p> 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? p> Merci pour l'aide de tout le monde! P> P>
7 Réponses :
"Cela fonctionne sur une machine de collègue mais pas le mien. " p> blockQuote>
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. p>
Les choses à vérifier incluent: p>
- le fichier tnanames.ora li>
- le fichier sqlnet.ora li>
- Le fichier listiers.ora (si vous utilisez une base de données locale) li> ul>
À 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
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. P>
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. P>
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 !!
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. P>
Il semble que tous les paramètres ont été vérifiés mais voici mes suggestions pour un problème de prise de vue: P>
(qu'avez-vous enfin faire pour le résoudre?) p>
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 $$.
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. p>
comme @derick dit, 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. P>
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) ) )';