ODP.NETドライバーは、基本的に2つの部分で構成されています。 .NET部分とネイティブOCI部分。エラーメッセージは、.NETパーツは機能しているが、ネイティブパーツのロードに失敗したことを示しています。
これらの問題が原因である可能性があります:
-
.NET部分とネイティブ部分の間にバージョンの不一致があります。
OraOps10.dll
に注意してください Oracle10gに属しています。したがって、.NET部分は明らかにバージョン10であり、バージョン10のネイティブ部分を探しています。 -
ビットネスの不一致がある可能性があります。 .NET部分が64ビットモードで実行されている場合は、64ビットのネイティブOCIDLLを探します。 64ビットシステムでは、タスクマネージャーはプロセスが32ビットか64ビットかを教えてくれます。 32ビットプロセスは
*32
でマークされています 。 -
レジストリにネイティブDLLへの正しいパスが含まれていない可能性があります。 ODP.NETは、
HKEY_LOCAL_MACHINE\Software\Oracle\ODP.NET\2.xxx.x.x\DllPath
の値を取得します。 OCIDLLを検索します。レジストリは32ビットと64ビットの部分に分割されていることに注意してください。レジストリを調べるプロセスに応じて、異なる値を取得します。
利用可能なすべての情報を質問に追加するのが最善です。 64ビットオペレーティングシステムですか? 32ビットまたは64ビットのプロセスですか?どのバージョンのOracleクライアントがインストールされましたか? Oracleクライアントはどのディレクトリにインストールされましたか?正しいレジストリエントリを確認できますか?