0

マシンで Oracle XE 10g を実行しています。いくつかの挿入をテストするテスト アプリを作成し、別のマシンで起動したところ、すべて正常に動作しました。問題は、Oracle XE がインストールされているのと同じマシンに大きなアプリをインストールしたときです。アプリを起動すると、このエラーが発生します

Oracle.DataAccess.Client.OracleException The provider is not compatible with the version 
of Oracle client  
en Oracle.DataAccess.Client.OracleInit.Initialize()
       en Oracle.DataAccess.Client.OracleConnection..cctor()
       en Oracle.DataAccess.Client.OracleConnection..ctor()
en Test.DB.Oracle.OracleManagerConnection.GetConnection()

この行でOracleConnection conn = new OracleConnection()

マシンからどのように機能するのかわかりませんが、別のマシンでは機能しません。問題は Windows Server 2008 x64 にあります (すでに Oracle.DataAccess.dll を .exe ディレクトリにコピーしています)。

4

2 に答える 2

1

ODP.NET は、主にエラー メッセージが非常に曖昧であるため、実際の PITA です。

次の場合、このエラー メッセージが表示される場合があります。

  • Oracle.DataAccess.dll が 32 ビットであり、検出して使用しようとするアンマネージド DLL が 64 ビットである、またはその逆である
  • アンマネージド DLL がまったく見つからない
  • 管理されていない DLL のバージョンは、Oracle.DataAccess.dll が必要とするバージョンとはまったく異なります。

Oracle.DataAccess.dll が管理されていない DLL を見つけるために使用するプロセスは、環境変数、レジストリ値などを考慮した複数のステップからなるプロセスであるため、非常に複雑であることに注意してください。

于 2013-08-06T10:23:31.363 に答える