2011-12-08 8 views
1

asp.net 1.1(VS 2003)からAsp.net 2(VS 2008)に移行するWebアプリケーションがあります。 新しいバージョンでOracle接続を実行する際に問題があります。 dev環境は64ビット7です。すべてのCPUでアプリケーションを生成すると、System.Data.OracleClientで問題が発生します。例外System.BadImageFormatException:プログラムのフォーマットが間違っています。 (HRESULT例外:0x8007000B)。 。私は、x86 CPU上で生成し、私は起動時にこのエラーがあります:System.data.OracleClient、32ビットoracleクライアントドライバ(Seven 64ビットオペレーティングシステム)

[BadImageFormatException:インポッシブル・デ・チャージャールfichier OU L'アセンブリ 'CpimWebApplication' OUの宇根デSESdépendancesを。間違った暫定 デchargement D'UNプログラムデフォーマット。]
System.Reflection.Assembly._nLoad(のAssemblyNameファイル名、文字列 コードベース、証拠assemblySecurity、国会locationHint、 StackCrawlMark & stackMark、ブールthrowOnFileNotFound、ブール forIntrospection)+0
System.Reflection.Assembly.InternalLoad(のAssemblyName assemblyRef、 証拠assemblySecurity、StackCrawlMark & stackMark、ブール forIntrospection)416
System.Reflection.Assembly.InternalLoad(文字列assemblyString、 証拠assemblySecurity、StackCrawlMark & stackMark、ブール forIntrospection)166 System.Reflection.Assembly.Load(文字列 assemblyString)+35
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(文字列 のAssemblyName、ブールstarDirective)190

どうしたの ?マシン上のOracleクライアントは32ビット版です。 32ビットのOracle ClientでSystem.data.OracleClientを利用することはできません。インスタント64ビットOracleクライアントはソリューションですか? TIA よろしくお願いします。

答えて

1

アプリケーションを64ビットモードで実行している場合、32ビットのOracleドライバは使用できません。あなたは

または

、64ビットOracleドライバをインストールし、64ビットモードでアプリケーションを実行するか必要

は、32ビットモードで実行するアプリケーションを設定します。アプリケーションプールを選択し、[詳細設定]に移動して[32ビットアプリケーションを有効にする]をtrueに設定して、IISで実行できます。

+0

大変ありがとうございました! –

0

GTGです。

ただし、System.Data.OracleClientは非推奨です。 Microsoftはこれ以上サポートしていません。

したがって、Oracle Data Provider for .NET:ODP.Netを使用することをお勧めします。

あなたはそれからダウンロードすることができます開発のために

Oracle Database 11g Release 2 Client (11.2.0.1.0) for Microsoft Windows (32-bit) Oracle Database 11g Release 2 Client (11.2.0.1.0) for Microsoft Windows (x64)

(Win7の64ビット)、32ビットの味を使用しています。私は成功していない64ビットのOracleクライアントを試しました。 生産(Wind2008R2 64ビット版)には、64ビットフレーバーを使用します。 同じバージョン(11.2.1.0)である必要があります。

また、「任意のCPU」のアプリケーションをコンパイルし、Oracle.DataAccessへの参照を追加し、「特定のバージョン」を「True」に、「ローカルコピー」を「False」に設定してください。これを行うことで、アプリケーションを運用環境にデプロイすると、GACから同じバージョン(11.2.1.0,64ビット相当)が検索されます。