2015-03-24 3 views
6

Ich entwickle eine App in Visual Studio 2013, die eine Verbindung zu einer Oracle-Datenbank herstellt. Ich muss den "Unmanaged Driver" verwenden. Wenn ich versuche, eine neue Verbindung in einem Dataset zu erstellen, wenn ich den "Verwalteten Treiber" gewählt habe, funktionieren alle: Die tnsnames.ora wird gefunden. Aber wenn ich die „Unmanaged Treiber“ wählen Sie alle aus, es mir eine Nachricht senden, wie „Fehler die Standard-Datei tnsnames.ora finden“Visual Studio ODP nicht verwalteter Treiber - Fehler beim Suchen der Standarddatei tnsnames.ora (12c)

ich schon - Uninstalled alle alten Oracle Clients - Reinigen Sie alle Umgebungsvariablen - Neuinstallierter Oracle-Client, ODP-Tools für Visual Studio

Nichts scheint zu funktionieren. Irgendwelche Ideen ?

enter image description here

+0

Wie sieht die Umgebungsvariable ORA_HOME aus? – jessehouwing

+0

Es ist seltsam, ich habe überprüft und ich habe keine ORA_HOME Umgebungsvariable – tapatio

+0

Haben Sie versucht, eine zu setzen? – jessehouwing

Antwort

0

Die tnsnames.ora Datei sollte in (Installation dir) \ network \ admin sein. Dies ist etwas, das Ihre dba bereitstellen würde.

Die Umgebungsvariable ORACLE_HOME ist nicht mehr erforderlich, da diese Informationen jetzt in der Registrierung unter HKLM \ Software \ Oracle gefunden werden.

Wenn Sie jedoch mehrere Orakelanbieterinstallationen installiert haben, ist es hilfreich, die Umgebungsvariable TNS_ADMIN zu verwenden, um alle Instanzen auf einen zentralen Ordner zu verweisen, in dem sich eine gemeinsame tnsnames.ora befindet.

+0

Tatsächlich habe ich schon einen TNS-Namen in dem von Ihnen genannten Verzeichnis, funktioniert aber sowieso nicht. – tapatio

1

Sie können diese Nachricht ignorieren und einfach EZ Connect verwenden, um eine Verbindung herzustellen (Host, Port, Dienstname).

Oder Sie können einen gültigen TNSNAMES.ORA mit Aliasnamen in ihm finden, und kopieren Sie sie auf: [ORACLE_HOME_WHERE_ODT_IS_INSTALLED] \ NETWORK \ ADMIN

Da Managed-Treiber kann TNSNAMES.ORA finden bedeutet dies, dass TNS_ADMIN gesetzt in der machine.config. Wenn Sie eine Verbindung über einen verwalteten Provider herstellen, wird Ihnen im Verbindungsdialog angezeigt, wo TNSNAMES.ORA gefunden wurde, und Sie können sie kopieren.

+0

Ich musste den EZ Connect wie gesagt verwenden, da ich das Problem nicht beheben konnte.Ich hatte einen Kollegen, der für ihn funktioniert, aber wir können nicht herausfinden, warum. – tapatio

4

Sie sollten in den Ordner mit der Datei machine.config gehen. Diese Datei befindet sich in %windir%\Microsoft.NET\Framework64\[version]\config\machine.config

stellen Sie sicher, dass Sie den folgenden Wert haben.

<oracle.manageddataaccess.client> 
    <version number="4.121.2.0"> 
     <settings> 
     <setting name="TNS_ADMIN"value="E:\app\client\USERWINDOW\product\12.1.0\client_1\network\admin" /> 
     </settings> 
    </version> 
</oracle.manageddataaccess.client> 

Auch finden Sie in diesem Beitrag auf Where Is Machine.Config?

0

Bitte stellen Sie sicher, dass unter Einträge in machine.config vorhanden sind, so dass Standard tnsnames.ora richtig gerichtet ist. In meinem Fall fehlte der Eintrag für den nicht verwalteten Client und nach dem manuellen Hinzufügen in der machine.config funktionierte er ordnungsgemäß.

machine.config: ..

<oracle.manageddataaccess.client> 
     <version number="4.121.2.0"> 
     <settings> 
     <setting name="TNS_ADMIN" 
     value="C:\app\client\username\product\12.1.0\client_1\network\admin" 
     /> 
     </settings> 
     </version> 
    </oracle.manageddataaccess.client> 
    <oracle.unmanageddataaccess.client> 
    <version number="4.121.2.0"> 
     <settings> 
     <setting name="TNS_ADMIN" 
     value="C:\app\client\username\product\12.1.0\client_1\network\admin" 
     /> 
     </settings> 
    </version> 
    </oracle.unmanageddataaccess.client> 

..

0

Meine Lösung: Gehen Sie zu dem Ordner "...\product\12.2.0\client_1\odt\vs2017" und manuell installieren vs2017.exe und nach erschien es in Visual Studio 2017.

Verwandte Themen