Ich versuche, von einer klassischen ASP-Anwendung eine Verbindung zu einer Orakel-Datenbank herzustellen, aber ich laufe weiterhin auf den ORA-12154-Fehler.
TNSNAMES.ORA ist richtig konfiguriert
DBSOURCE.A.B.com = (BESCHREIBUNG = (ADDRESS_LIST = (ADDRESS = (PROTOKOLL = TCP) (HOST = C.D.B.com) (PORT = 1231)) ) (CONNECT_DATA = (SERVICE_NAME = DBSOURCE) ) )
Ich kann TNSPING
C: \ Dokumente und Einstellungen \ USERID.A & gt; tnsping DBSOURCE
TNS Ping-Dienstprogramm für 32-Bit-Windows: Version 10.2.0.4.0 - Produktion am 09-MAR-2 011 09:12:31
Copyright (c) 1997, 2007, Oracle. Alle Rechte vorbehalten.
Verwendete Parameterdateien: C: \ oracle \ product \ 10.2.0 \ Client_1 \ NETZWERK \ ADMIN \ sqlnet.ora
Benutzte TNSNAMES-Adapter, um den Alias aufzulösen Kontakt versuchen (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = C.D.B.com) (PORT = 1231))) (CONNECT_DATA = (SERVIC E_NAME = DBSOURCE))) OK (30 ms)
Ich kann eine ODBC-Verbindung erstellen und habe die Verbindung getestet, die erfolgreich ist.
Ich habe meine sqlnet.ora-Datei überprüft
NAMES.DEFAULT_DOMAIN = A.B.com
SQLNET.AUTHENTICATION_SERVICES = (KEINE)
NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
Ich habe auch überprüft, dass TNSNAMES.ORA einer meiner Systempfade ist.
Ich kann mit SQLPLUS
Hier ist der Code, der den Fehler auslöst
%Vor%Ich benutze Windows XP Pro 32bit SP3
Ich habe das auf einem Mitarbeiter-Rechner getestet und die ASP-App hat keine Probleme, fehlt mir irgendwo eine Konfiguration oder habe ich meine Konfiguration durcheinander gebracht?
Danke für die Hilfe alle!
Es scheint, dass alle Einstellungen überprüft wurden, aber hier sind meine Vorschläge für einige Probleme:
(Was haben Sie schließlich getan, um es zu lösen?)
"Dies funktioniert auf einem Mitarbeiter-Rechner, aber nicht meins. "
ORA-12154 ist normalerweise ein Konfigurationsproblem, und in Ihrem Fall scheint es so zu sein. Die kurze Antwort ist, Ihre Maschine mit der Ihres Kollegen zu vergleichen und herauszufinden, was der Unterschied ist.
Zu überprüfende Punkte:
Haben Sie mehrere Häuser von Oracle? Stellen Sie sicher, dass IIS nicht auf das andere ORA_HOME zeigt (und dadurch Ihren Eintrag tnsnames.ora nicht findet). Ich bin nicht sehr vertraut mit IIS-Konfiguration, also würde ich dies testen, indem Sie den TNS-Eintrag zu allen tnsnames.ora auf meinem PC hinzufügen.
Wenn Sie ein 64-Bit-Betriebssystem und Oracle 10 verwenden, versuchen Sie, alle Patches für Oracle zu installieren. Etwas ähnliches ist mir passiert, SQL Plus und alles andere hat funktioniert, außer meinem .NET Programm. Ich habe ein .Net-Programm aus dem Ordner "Programmdateien (x86)" ausgeführt. Die Installation von Patches hat es behoben.
Das wahrscheinlichste Problem ist das Fehlen der Leseberechtigung für die Oracle-Verzeichnisse durch den Benutzer, den IIS ausführt.
Wie @Derick sagt, vorübergehend setzen Sie die Berechtigungen im Verzeichnis $ ORACLE_HOME (Everyone = Vollzugriff) auf weit geöffnet, starten Sie IIS neu und testen Sie. Wenn das funktioniert, geben Sie dem IIS-Benutzer Leseberechtigung für dieses Verzeichnis.
Sie können dieses Problem auch mithilfe von Process Monitor von Microsoft SysInternals bestätigen und dabei die Fehlernachricht sehen Der CreateFile (...) API-Aufruf zum Öffnen der DLLs oder Lesen der TNSNAMES.ORA-Datei. Angesichts der Funktionsweise von temporären Dateien bei der Auswahl über Cursor müssen Sie dem IIS-Benutzer möglicherweise auch Schreibrechte für einige Verzeichnisse erteilen.
Tags und Links oracle odbc database-connection asp-classic ora-12154