Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle.DataAccess.dll kann nicht gefunden werden, obwohl es existiert

Die ODP.NET-Installation kann sehr knifflig sein. Es gibt viele Dinge, die schief gehen können:

  • Es kann ein Versionskonflikt vorliegen (2.111.7.20 vs. 2.112.1.0 vs. 2.112.2.0).
  • Sie können eine Diskrepanz zwischen 32 und 64 Bit haben.
  • Die .NET-DLL ist möglicherweise vorhanden, aber eine der Abhängigkeiten wurde nicht gefunden.

Versuchen Sie zuerst, die 32/64-Bit-Nichtübereinstimmung zu überprüfen. In IIS können Sie konfigurieren, ob Ihre Webanwendung als 32- oder 64-Bit ausgeführt wird. Um dies zu überprüfen, schauen Sie im Task-Manager nach, ob der Prozess w3wp.exe den *32 hat Kennzeichen. Gehen Sie dann zu C:\Windows\Assembly im Dateiexplorer. Es ist eine spezielle Ansicht, die den GAC anzeigt. Wenn in der letzten Spalte der Zeile Oracle.DataAccess x86 steht, dann ist es 32 Bit. Wenn dort AMD64 steht, dann ist es 64 Bit.

In derselben Zeile finden Sie auch die genaue Versionsnummer. Überprüfen Sie in VisualStudio, ob das ASP.NET-Projekt dasselbe verwendet.

Wenn ich mich nicht irre, die Hauptabhängigkeit von Oracle.DataAccess.dll ist OraOps11w.dll , die im BIN-Verzeichnis des Oracle-Clientverzeichnisses verfügbar sein sollte. Dieses Verzeichnis befindet sich normalerweise über die Registrierung (HKLM\SOFTWARE\ORACLE\ODP.NET\<version>\DllPath ). Stellen Sie sicher, dass Sie sich die Registrierung der richtigen Bitanzahl ansehen (32 vs. 64 Bit).

Es gibt noch mehr Dinge, die gehen können. Aber diese hier lösen normalerweise das Problem.