2017-12-21 185 views
0

私は.NETのC#ベースのWebサイトを開発しました。これは主にOracleデータベースに依存しています。 DBにアクセスするために私はOracle ODAC 11Gを使用しています。 (Oracle.DataAccess.dllバージョン:1.111.6.10)。エラー:プロバイダがoracleのバージョンと互換性がありません

ウェブサイトはテスト用にローカルで実行するとうまく動作します(VS 2013でCtrl + F5)。しかし、ローカルに公開した後(私のPCでIISが実行された)、「プロバイダはOracleのバージョンと互換性がありません」というワイヤード・エラーが発生しました。

iisコンソールで32ビットモードで実行するようにアプリが設定されていることを既に確認しました。しかし、私はまだVisual StudioからWebサイトを実行したときにそのWebサイトが動作する理由を理解できず、公開するときには機能しません。

+1

のOracleのバージョンは何あなたがローカルで実行している、とあなたのウェブサーバ上で何のOracleのバージョンを実行していますか? –

答えて

0

ターゲット・マシンにインストールされているOracle Clientのバージョンを注意深く確認してください(!)。

  • Oracle.DataAccess.dllと同じアーキテクチャ(つまり32ビットまたは64ビット)を使用している場合、
  • バージョンが一致していますか。あなたはマイナーバージョンでさえ比較しなければなりません。ちょうど "11.1"で十分ではありません。

私はSigcheckツール、すなわち

cd %ORACLE_HOME% 
sigcheck -s oraociei*.dll 
sigcheck -s OraOps*w.dll 

チェックもロードされているファイルOracle.DataAccess.dllをお勧めします。あなたが提供したファイルではなく、GACからロードされる可能性があります(GACはデフォルトで優先されます)。ただ、DLLは、次のようにロードされているかを調べることができます。

var con = New OracleConnection(); 
Console.WriteLine(con.GetType().Assembly.FullName); 
Console.WriteLine(con.GetType().Assembly.Location); 

も参照してくださいThe provider is not compatible with the version of Oracle client

関連する問題