VS2010 + pilote Oracle: ORA-12154: TSN:impossible de résoudre le connecter identifiant spécifié
Je suis en utilisant:
- Visual Studio 2010
- .Net Framework Fournisseur de Données pour Oracle
- Oracle Developer Tools pour Visual Studio (à partir de Oracle, site internet)
J'ai essayé d'installer "Oracle Developer Tools pour Visual Studio" et a créé une tnsnames.ora et sqlnet.ora fichiers dans mon C:\app\ [mon nom d'utilisateur]\produit\11.2.0\client_1\Network\Admin répertoire.
Ils ressemblent à ceci:
# tnsnames.ora
ORATEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbs-oratest)(PORT = 1521))
)
(CONNECT_DATA =
(SID = [ORATEST])
)
)
et
# sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES= (ALL)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
Quand j'ai essayer d'utiliser l' .Net Framework Fournisseur de Données pour Oracle pilote pour configurer une nouvelle connexion (ou n'importe quel autre pilote pour cette question: OLE, ODBC, etc) il donne l'erreur:
ORA-12154: TSN:impossible de résoudre le connecter identifiant spécifié
À l'aide de OLE pilote sur une machine sans le client Oracle installé fonctionne bien:
OleDbConnection conn = new OleDbConnection(
"Provider=MSDAORA;Data Source=ORATEST;" +
"Persist Security Info=True;Password=readonly;User ID=readonlyuser");
Ce que je fais mal? Existe-il des instructions simples sur la façon d'installer une base Oracle pilote?
Vous en remercie d'avance!
OriginalL'auteur Matt | 2010-11-19
Vous devez vous connecter pour publier un commentaire.
La meilleure solution que j'ai trouvé est d'utiliser l'Oracle d'Accès aux Données de la bibliothèque du Client, et d'inclure l'ensemble de noms TNS entrée dans la chaîne de connexion. Cela permet au projet d'être facilement publiés sur un serveur web, ClickOnce, etc.
Voici les étapes nécessaires pour configurer le pilote Oracle de travail dans votre projet:
1) Obtenir Dll à partir de la " Oracle Data Provider for .NET paquet
Télécharger le fichier d'installation à partir de cet emplacement: http://www.oracle.com/technetwork/topics/dotnet/index-085163.html
Je suis allé de l'avant et de l'installation de la version complète de 200 MO ODAC avec Oracle Developer Tools pour Visual Studio, mais vous ne vraiment besoin de quatre Dll à partir de ce téléchargement. (Vous pouvez être en mesure d'extraire directement à partir du package d'installation, au lieu d'aller à travers l'ensemble du processus d'installation, ou peut-être l'un des plus petits de téléchargement inclut toutes.)
2) Référence Dll dans votre projet
Recherche le répertoire d'installation de l'Accès aux Données Oracle Client et faites glisser les quatre Dll dans le répertoire racine de votre projet:
Définir la Copie vers le Répertoire de Sortie bien tous les fichiers sauf Oracle.DataAccess.dll pour Copie toujours.
Sous Projet --> Ajouter une Référence..., cliquez sur le Parcourir onglet et sélectionner le Oracle.DataAccess.dll fichier.
3) Utiliser le pilote avec la chaîne de connexion complète (en option)
Afin de ne pas avoir à vous soucier de TNS noms de fichiers en cours d'installation sur les machines de l'application a été déployée, j'ai mis l'ensemble de définition dans le fichier comme indiqué par connectionstrings.com. Il rend la chaîne de connexion un peu encombrant, mais s'éloigne beaucoup de la TNS Noms de fichier des maux de tête que je vivais avant:
Voici la classe que j'ai utilisé pour tester le pilote:
OriginalL'auteur Matt
Vous devez utiliser l'Oracle d'Accès aux Données de la bibliothèque du Client, puis le OracleConnection objet à la place.
http://www.oracle.com/technology/sample_code/tech/windows/odpnet/howto/connect/index.html
Je sais que Oracle est du genre pointilleux avec TNS noms de fichier. J'ai l'habitude de compter sur les administrateurs de base de données pour cela. SQL-Server est beaucoup plus facile d'y aller...
J'ai fini par utiliser une ligne TNS noms d'entrée: Données Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=servername)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=servicename)));nom d'Utilisateur=nom d'utilisateur, Mot de passe=********;
OriginalL'auteur Eric Schneider
Usage local, serveur web IIS, au lieu de serveur de Développement Visual Studio (Paramètres de Projet - WEB) a fait l'affaire pour moi!
Tns-12154 m'avait tirant sur mes cheveux... site internet a bien fonctionné dans VS2008...
Ce qui concerne,
Mike
OriginalL'auteur Mike Dole
Le code que jutilise est le ci-dessus.
P. S.: j'ai testé de nombreuses fois. À L'Aide De Visual Studio .Net 2010 (VB.Net 2010).
OriginalL'auteur Fernando