Fehler mit oracle.dataaccess.dll
Ich habe eine web-Anwendung, die verwendet Oracle.DataAccess.dll für die Kommunikation mit einer Oracle-db.
Die web-Anwendung bereitgestellt, die auf 32-bit-windows-system funktioniert aber nicht auf windows server 2008 64 bit. Ich installierte 10204_vista_win2k8_x64_production_db-Paket, verwiesen die dll installiert (version 2.102.4.0) aus dem Projekt, aber ich bekomme die folgende Fehlermeldung:
Konnte nicht geladen, Datei oder assembly " Oracle.DataAccess, Version=2.102.4.0, Culture=neutral, PublicKeyToken=89b483f429c47342' oder eine Ihrer Abhängigkeiten. Das system kann nicht die angegebene Datei gefunden werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gleiche hier. Die Oracle.DataAccess assembly läuft nicht im 64 bit-Modus.
Sollten Sie den Anwendungspool für die site zu 32-bit-Modus (wechseln Sie zu den Anwendungspools Erweiterte Einstellungen und setzen Ermöglichen 32-Bit-Anwendungen "True")
Wenn das nicht funktioniert, stellen Sie sicher, dass Ihre Oracle-Verzeichnis (das Verzeichnis, das alle die Oracle-dlls) in Ihrem system Weg. Wenn Sie vergessen, dass Sie erhalten die gleiche kryptische Fehlermeldung über nicht finden, Oracle.DataAccess.
BEARBEITEN:
Installation des Oracle-Clients können eine große Schmerzen. Mit der Oracle Instant Client ist etwas einfacher als die Installation der full-client, also das ist, was ich normalerweise tun:
Werde ich Euch die Antworten zu geben von dem, was ich habe ging gerade durch, die auf Windows Server 2008 R2 ist 64 bit-Betriebssystem. Die Anwendungs-suite von Bibliotheken, die ich gegeben wurde, die entwickelt wurden, verwenden .net 3.5 x86 mit älteren DLL-Bibliotheken, und ich steckte, denn ich hatte installiert die neueren x64-clients von oracle.
Was ich gefunden habe war Folgendes:
Installieren Sie die neuesten x64-client von Oracle, die für Windows Server 2008. Ich glaube, das wäre die 2.7.0-client. Wenn Sie wählen Sie die installation, stellen Sie sicher, dass Sie Benutzerdefiniert " und wählen Sie die .NET-Bibliotheken.
Konfigurieren Sie Ihre Dateien tnsnames und testen Sie Ihre tnsping gegen Ihre Datenquelle.
Weiter, wenn Sie eine 32 bit-Anwendung, installieren Sie die gleiche version des Clients für 32-bit. Beachten Sie auch die gleiche Installations-routine, und wählen Sie die gleichen Hause.
Wenn Ihr fertig, Sie werden feststellen, dass Sie einen einzigen app - /- Produkt mit zwei client-Verzeichnisse (Client1 und Client2).
wenn Sie navigieren Sie zu der windows - /Baugruppen-Verzeichnis werden Sie feststellen, dass Sie einen Verweis auf die Oracle.DataAccess.dll (x2) mit eine für x86 und eine für AMD64.
Nun, je nachdem, ob Sie Entwickler sind oder die Entwicklung auf der Maschine selbst, können Sie ok sein, hier aber, wenn Sie sind unter Verwendung älterer Treiber, dann müssen Sie erfüllen einen letzten Schritt.
Navigieren Sie zu der app\name\product\version\client_1\odp.net\publisher policy\2.x Verzeichnis. Im Lieferumfang dabei sind zwei policy-Dateien. mit dem Befehl gacutil /i zur Installation der Policy.2.111.Oracle.DataAccess.dll in den GAC. Dieser leitet legacy oracle ODP Anrufe zu den neueren Versionen. Also, wenn jemand entwickelt, mit der 10g-client, es funktioniert jetzt mit der 11-client.
Wenn Sie weitere details benötigen, oder benötigen weitere Fragen beantwortet, wie spiegeln 32-bit-Modus auf ein oder aus deiner .net-assemblies, mich per E-Mail.
J Banken
[email protected]
Glück.
Wenn Sie nicht haben, können 32-bit-oracle-client arbeitet und installiert, 64-bit, benötigen Sie zum installieren der 64-bit-client, und ergreifen Sie die oracle.dataaccess.dll Datei unter odp.net aus der oracle-client installiert ist Ordner. Und Sie haben mit dieser dll und Austausch der Verweis auf diese Datei anstelle der Verwendung von 32-bit-dll.( das ist, was Sie wahrscheinlich für das Projekt/Lösung)
Wenn Sie verschiedene bit-oracle-client-es ist nicht zur Arbeit gehen. so erhalten Sie Fehler wie die.
Hoffe, das hilft.
Siehe Abbildung auf
Umsetzung Oracle.Web.dll, Oracle.DataAccess.dll 64-bit nicht auf Windows Server 2008 mit IIS 7.5-32-bit-deaktiviert
Wenn Sie mit der 32-bit-version von Oracle.DataAccess.dll dann führen Sie einen der folgenden Schritte aus:
a) Bereitstellen einer 32-bit-server, oder
b) Bereitstellen einer 64-bit-server mit 'Enable 32-bit applications" auf true festgelegt.
Wenn Sie mit der 64-bit-version von Oracle.DataAccess.dll dann Sie haben einfach zu verwenden, die eine 64-bit-server.
Das problem verursacht, indem Sie Oracle als nicht bieten eine AnyCPU-version Oracle.DataAccess.dll (wahrscheinlich, weil es hat unmanaged/native Teile)
Ist, wenn Sie die folgenden, funktioniert alles einwandfrei
1. Konsequent setzen Sie alle Ihre dlls mit AnyCPU.
2. Stellen Sie sicher, dass die richtige version der dll auf dem Computer installiert ist, auf dem die ausführbare Datei ausgeführt werden (d.h. 32 bit oder 64 bit d.h. gleiche wie OS)
3. Ignorieren compiler-Warnungen, dass der eine 64/32-bit-version verwendet wird, anstatt ein MSIL-version
Die kompilierte Versionen können dann verwendet werden, auf 32-und 64-bit, so lange wie Sie die entsprechende version des oracle-dll installiert ist.