ORA-12154 n'a pas pu résoudre le connecter identifiant spécifié
J'ai passé au 64 bits de Windows 7 et a créé une simple application web pour tester la connexion à la base de données. Je suis avec VS 2010 - plaine asp.net projet web et je suis en cours d'exécution de l'application à partir de VS.
J'obtiens cette erreur:
"ORA-12154 n'a pas pu résoudre le connecter identifiant spécifié"
J'ai aussi un exemple d'application console qui teste la connexion à la base de données, et il fonctionne très bien.
Après googler c'certains, j'ai trouvé que beaucoup de messages en ligne, référencement à des autorisations j'ai donc mis mon C:/Oracle permissions de lecture/écriture/exécution pour mon ASP.net compte SERVICE RÉSEAU, NOM de l'ORDINATEUR. Que ne parvenez toujours pas à résoudre le problème. J'ai vérifié que mon application web s'exécute sous mon nom de domaine\nom d'utilisateur du compte et que ce compte que les droits de lecture/écriture/exécution pour la C:\Oracle dossier.
J'ai même ré-installé mon VS assurez-vous qu'il est dans C:\Program plutôt que des Fichiers C:\Program Files(x86)
Toutes les idées de pourquoi mon web app ne pas voir la chaîne de connexion? (alors que la console app)
Pas sûr de ce que je peux faire.
OriginalL'auteur sarsnake | 2011-10-31
Vous devez vous connecter pour publier un commentaire.
Je vais supposer que vous utilisez le tnsnames.ora fichier pour spécifier votre disposition des services de base de données. Si donc les erreurs de connexion viennent généralement à deux choses.
L'application ne trouve pas le TNS entrée que vous avez spécifié dans la chaîne de connexion.
Le TNS entrée a été trouvé, mais l'adresse IP de l'hôte ou n'est pas correct dans le tnsnames.ora fichier.
Étendre sur le numéro 1 (qui je pense est votre problème). Quand vous dites Oracle pour se connecter en utilisant quelque chose comme:
Le service est défini dans le tnsnames.ora fichier. Si je tente de me connecter avec un service qui n'est pas définie dans mon tnsnames.ora, je reçois le message d'erreur que vous obtenez:
[sodonnel@home ~]$ sqlplus sodonnel/sodonnel@nulle part
Si vous avez besoin de vérifier quelques points:
Votre problème est peut-être bien la numéro 3 - l'exécution de l'application en tant qu'utilisateur différent que lorsque vous exécutez la console?
Oracle recherche pour le tnsnames.ora fichier dans le répertoire défini dans le TNS_ADMIN à la variable d'environnement Si vous êtes en cours d'exécution que les différents utilisateurs, puis peut-être le TNS_ADMIN variable d'environnement n'est pas définie, et donc il ne peut pas trouver le fichier?
tout à fait raison, je l'ai corrigé. Il n'a pas l'air correct comme je l'ai été saisie, mais il juste ne cliquez pas avec moi que c'était mal.
Stephen, merci. Les Points 1 et 2 sont OUI. Ma première intuition était que mon application web s'exécute sous un autre utilisateur que l'application de console, donc j'ai vérifié et sûrement assez, mon application web s'exécute en tant que DOMAINE\nom d'utilisateur et j'ai donné à ce compte, l'autorisation d'exécuter/écriture de l'oracle de dossier....Le tnsnames.ora est là et toutes les entrées sont correctes, mais il n'est toujours pas à résoudre à partir de l'application web.
Est le TNS_ADMIN variable d'environnement pour l'utilisateur? Je suis plus un expert Unix que Windows, mais je pense que vous devez vous assurer qu'il est un "SYSTÈME" de la variable d'environnement windows de sorte qu'il est disponible pour tous les utilisateurs. (Cliquez-droit sur Mon Ordinateur -> Propriétés -> Paramètres Système Avancés - > Variables d'Environnement; Ensuite, assurer TNS_ADMIN est défini dans la section Variables Système pour pointer vers le répertoire qui contient le fichier (C:\app\sodonnel\product\11.2.0\dbhome_1\NETWORK\ADMIN sur mon système))
Il y a aussi un
TNS_ADMIN
chaîne de valeur qui devra être défini dans le registre àHKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11ghome1
, ce qui aurait le même chemin que la variable d'environnement.OriginalL'auteur Stephen ODonnell
Il peut y avoir beaucoup de problèmes, mais si vous utilisez oracle 10g , désinstaller oracle 10g et également supprimer la valeur de registre et installer oracle 11g. Mais si vous utilisez oracle 11g , allez d'abord et de vérifier sur la base de registre si elle pointe vers la droite de la maison. Parfois il peut y avoir plus d'un à la maison parce que vous installez sql developer, encore et encore . Dans ce cas, vous pouvez soit supprimer inutiles à la maison de la valeur de registre ou vous pouvez ajouter des tns et sql.net fichier de tous ceux de la maison, qui pourrait résoudre le problème. J'ai résolu le mien de cette manière.
OriginalL'auteur Chandra Malla
J'ai eu le même problème. Dans mon cas, j'ai été en utilisant un service web qui a été construit à l'aide de AnyCPU paramètres. Depuis la WCF a été en utilisant 32 bits Oracle data access components donc une augmentation de la même erreur quand j'ai essayé de l'appeler à partir d'un client de console. Alors, quand j'ai compilé le service WCF x86 à l'aide de la fonction réglage de la client a été en mesure d'obtenir les données à partir du service web.
Si vous compilez comme "any CPU" et l'exécuter sur une plate-forme x64, alors vous ne serez pas en mesure de charger une dll 32 bits (ce qui dans notre cas ont été l'Oracle Data Access components), parce que notre application n'a pas été commencé dans WOW64 (Windows32 sur Windows 64). Afin de permettre à la 32 bits de dépendance de Données Oracle Access components je compilee le service web avec la Plate-forme cible de x86 et qui a résolu pour moi
Comme une alternative si vous avez 64 bits ODAC les pilotes installés sur la machine qui a également causé le problème.
OriginalL'auteur Asif
S'il vous plaît laissez-moi répéter ce que dit Stephen depuis que je l'ai raté la première fois moi-même. Le
TNS_ADMIN
variable d'environnement etORACLE_HOME
est fixé àC:\instantclient_11_
2 etth tnsnames.ora
fichier est là. Trouvé la réponse sur ce lien.ORACLE_HOME
=C:\oracle\product\11
etTNS_ADMIN
=C:\oracle\product\11\network\admin
. Les emplacements par défaut (bien que11
peut être que la version que vous avez nommé/de l'installation à l'époque). LePath
variable doit également inclureC:\oracle\product\11\bin
.OriginalL'auteur Bill Thayer
Si vous utilisez LDAP, assurez-vous que la variable d'environnement "TNS_ADMIN" existe et pointe vers le dossier contenant le fichier "ldap.ora".
Si cette variable n'existe pas, créez-le et redémarrez Visual Studio.
tnsnames.ora
sqlnet.ora
OriginalL'auteur Sylvain Rodrigue
Eu un problème similaire, seulement mon application web était bien et c'était SQLPlus qui me donnait de problèmes de connexion, et le
ORA-12154 could not resolve the connect identifier specified
erreur. J'ai eu 11g et 12 Oracle installé des clients. Mes variables d'environnement ont été tous mis au point à mon12
exemple:ORACLE_HOME
=C:\oracle\product\12
PATH
=C:\oracle\product\12\bin;....
TNS_ADMIN
=C:\oracle\product\12\network\admin
Il y a aussi une entrée de registre nécessaires à
HKLM\Software\Oracle\KEY_OraClient12Home1
, une entrée de chaîne deTNS_ADMIN
avec le même chemin que la variable d'environnement.J'ai un tnsnames.ora à la fois
C:\oracle\product\11\network\admin
etC:\oracle\product\12\network\admin
. Pour autant que je sais, mon web app et le 12 SQLPlus client, j'ai été l'aide doit avoir été à l'aide de tous les12
version variables.Mon étapes de dépannage:
12
à11
.11
à12
.Donc je ne sais pas vraiment ce qui a causé 12 SQLPlus pour arrêter la connexion, mais ce genre de reset peut travailler pour quelqu'un, donc j'ai pensé document ici.
OriginalL'auteur vapcguy
utilisez le moniteur de processus et de recherche pour le nom n'est pas trouvé de journal pour tnsnames.ora fichier.
vérifier vos variables d'environnement. si pas valable que désinstaller tous les clients oracle et de le réinstaller.
TNS_ADMIN
et le point deC:\oracle\product\11\network\admin
où il doit y avoir untnsnames.ora
fichier avec une chaîne de connexion à l'intérieur - c'est ce que je pense que ce billet essaie de dire.OriginalL'auteur user572730
J'ai eu cette erreur dans Visual Studio 2013, avec un projet SSIS. J'ai mis Projet, Propriétés, le Débogage, la Run64BitRuntime = false et puis le package SSIS couru. Cependant, quand j'ai déployé le paquet sur le serveur, j'ai dû mettre la valeur à true (Serveur est en version 64 bits de Windows 2012 /Sql 2014 ).
Je pense que le raisonnement derrière cela est que Visual Studio est un 32 bits.
OriginalL'auteur Fordy
C'est une vieille question, mais d'Oracle dernière installateurs sont pas d'amélioration, alors j'ai récemment trouvé moi-même de retour dans ce marais, en se débattant autour de plusieurs jours ...
Mon scénario a été SQL Server 2016 RTM. 32 bits Oracle 12c Open Client + ODAC a finalement été fonctionne très bien pour Visual Studio Concepteur de Rapports et l'Intégration des Services de designer, et aussi des packages SSIS exécuter par l'intermédiaire de l'Agent SQL Server (32 bits). 64-bit a été fonctionne bien pour le Rapport du Portail lors de la définition et Test d'une Source de Données, mais les rapports ont toujours donné le redoutable "ORA-12154" erreur.
Ma dernière solution a été de passer à un EZCONNECT chaîne de connexion - ce qui évite le TNSNAMES désordre total. Voici un lien pour une description détaillée, mais il est fondamentalement juste: host:port/sid
http://www.oracledistilled.com/oracle-database/oracle-net/using-easy-connect-ezconnect-naming-method-to-connect-to-oracle-databases/
Dans le cas où il peut aider n'importe qui dans le futur (ou que je suis coincé sur ce encore), voici mon installation d'Oracle étapes (l'horreur):
Installer les pilotes Oracle: le Client Oracle 12c (32 bits), plus les ODAC.
un. Téléchargez et décompressez les fichiers suivants à partir http://www.oracle.com/technetwork/database/enterprise-edition/downloads/database12c-win64-download-2297732.html et http://www.oracle.com/technetwork/database/windows/downloads/utilsoft-087491.html ):
je. winnt_12102_client32.zip
ii. ODAC112040Xcopy_32bit.zip
b. Exécuter winnt_12102_client32\client32\setup.exe. Pour le Type d'Installation, sélectionnez Admin. Pour l'emplacement de l'installation d'entrer C:\Oracle\Oracle12. Accepter les autres valeurs par défaut.
c. Démarrez une Invite de Commande “en tant Qu'Administrateur” et le changement de répertoire (cd) à votre ODAC112040Xcopy_32bit dossier.
d. Entrez la commande: installer.bat tous les C:\Oracle\Oracle12 odac
e. Copiez le tnsnames.ora fichier à partir d'une autre machine pour les dossiers suivants: *
je. C:\Oracle\Oracle12\network\admin *
ii. C:\Oracle\Oracle12\product\12.1.0\client_1\network\admin *
Installer le Client Oracle 12c (x64) plus ODAC
un. Téléchargez et décompressez les fichiers suivants à partir http://www.oracle.com/technetwork/database/enterprise-edition/downloads/database12c-win64-download-2297732.html et http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html ):
je. winx64_12102_client.zip
ii. ODAC121024Xcopy_x64.zip
b. Exécuter winx64_12102_client\client\setup.exe. Pour le Type d'Installation, sélectionnez Admin. Pour l'emplacement de l'installation d'entrer C:\Oracle\Oracle12_x64. Accepter les autres valeurs par défaut.
c. Démarrez une Invite de Commande “en tant Qu'Administrateur” et le changement de répertoire (cd) à l'C:\Software\Oracle Client\ODAC121024Xcopy_x64 dossier.
d. Entrez la commande: installer.bat tous les C:\Oracle\Oracle12_x64 odac
e. Copiez le tnsnames.ora fichier à partir d'une autre machine pour les dossiers suivants: *
je. C:\Oracle\Oracle12_x64\network\admin *
ii. C:\Oracle\Oracle12_x64\product\12.1.0\client_1\network\admin *
* Si vous allez avec l'EZCONNECT méthode, puis ces étapes ne sont pas nécessaires.
L'ODAC installe sont difficiles et obscures - merci à Dan anglais qui m'a donné la méthode (détaillé ci-dessus).
OriginalL'auteur Mike Honey
Cette erreur (et aussi ORA-6413: Connexion à ne pas ouvrir) peut aussi être causée par des parenthèses dans le chemin de l'exécutable de l'application et un bug dans le 10.2.0.1 ou inférieur client oracle bibliothèques.
Vous devez soit mettre à jour votre client oracle de la bibliothèque ou de modifier le chemin de l'exécutable.
Plus de détails, voir:
OriginalL'auteur canahari
Utilisation ce lien.sur le Support de Microsoft
J'ai donné la permission de IUSR_MachineName de l'utilisateur sur le dossier de base oracle et j'ai été en mesure de résoudre le problème
OriginalL'auteur SharpCoder
J'ai un Entity Framework d'application web qui fonctionne sur ma machine locale, mais cette erreur s'affiche lorsque poussé à un autre environnement. Il y a d'autres non-Entité Cadre des applications de ce travail, et je suis en mesure de se connecter avec sqlplus.
À l'aide de sysinternals Process Monitor montre que tns noms de fichier n'est pas chargé correctement:
Suivantes la documentation j'ai essayé d'ajouter une section donnant l'emplacement du fichier tnsnames comme suit:
Cependant, ceci a eu un effet immédiat sur 500 server error.
Enquête plus approfondie a montré que la dll, j'ai été de l'emballage avec l'application web est la version 4.122.1.0, tandis que l'Oracle environnement client installé sur la machine a été 4.121.2.0. Comme expliqué dans la Oracle EntityFramework de la documentation du paquet
J'ai tenté d'ajouter une version séparée de la section dans le .NET de la machine.config sans succès (il y avait une section pour la version 4.121.2.0 et j'ai ajouté une section pour la version 4.122.1.0). Après j'ai enlevé le "oracle.manageddataaccess.client" de la machine.la configuration, le ci-dessus, outre le web.config résolu ORA-12154.
Solution n ° 1 sommaire:
Solution 2
Alors que des recherches sur ce problème, j'ai trouvé que le TNS_ADMIN variable d'environnement n'a pas été définie. J'ai créé une nouvelle variable d'environnement appelée TNS_ADMIN et définir la valeur "C:\Oracle\product\12.1.0\client_1\Network\Admin". J'ai enlevé le web.les modifications de configuration, et la suppression de "l'oracle.manageddataaccess.client" de .NET de la machine.config, mais encore reçu ORA-12154. Seulement après j'ai redémarré la machine est-il résolu le problème.
Solution #2 résumé:
Solution 3
J'ai ajouté une entrée pour la version correcte dans le registre et cela a résolu le problème:
Le nom de la clé est
TNS_ADMIN
et cette pointe vers le dossier contenant le fichier tnsnames:Pas le
C:\Oracle\product\12.1.0\client_1\network\admin
dossier.OriginalL'auteur BurnsBA