2

asp.net 1.1(VS 2003)からAsp.net 2(VS 2008)に移行するWebアプリケーションがあります。新しいバージョンでOracle接続を実行するのに問題があります。開発環境は64ビットセブンです。すべてのCPUでアプリケーションを生成すると、System.Data.OracleClientで問題が発生し、例外System.BadImageFormatException:プログラムのフォーマットが正しくありません。(例外de HRESULT:0x8007000B)。。x86 CPUで生成し、起動時にこのエラーが発生します:

[BadImageFormatException:Impossible de Charger le fichier ou l'assembly' CpimWebApplication'ouunedesesdépendances。暫定的な課金d'unプログラムのフォーマットが正しくありません。]
System.Reflection.Assembly._nLoad(AssemblyName fileName、String codeBase、Evidence assemblySecurity、Assembly locationHint、StackCrawlMark&stackMark、Boolean throwOnFileNotFound、Boolean forIntrospection)+0
System.Reflection.Assembly.InternalLoad (AssemblyName assemblyRef、Evidence assemblySecurity、StackCrawlMark&stackMark、Boolean forIntrospection)+416
System.Reflection.Assembly.InternalLoad(String assemblyString、Evidence assemblySecurity、StackCrawlMark&stackMark、Boolean forIntrospection)+166 System.Reflection.Assembly.Load(String assemblyString)+35
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName、Boolean starDirective)+190

どうしたの ?マシン上のOracleクライアントは32ビットバージョンです。System.data.OracleClientを32ビットのOracleクライアントで利用することはできないとWebで読んだことがありますか?64ビットのOracleクライアントをインストールすることがソリューションですか?TIAよろしく

4

2 に答える 2

2

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

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

また

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

于 2011-12-08T16:41:19.473 に答える
0

GTG そうですね。

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

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

次の場所からダウンロードできます。

Microsoft Windows(32ビット)用の Oracle Database 11gリリース2クライアント(11.2.0.1.0) Microsoft Windows(x64)用のOracle Database 11gリリース2クライアント(11.2.0.1.0)

開発用 (Win7 64 ビット) には、32 ビット フレーバーを使用します。64 ビットの Oracle クライアントを試しましたが、成功しませんでした。本番環境 (Wind2008R2 64 ビット) では、64 ビット フレーバーを使用します。それらは同じバージョン (11.2.1.0) でなければならないことに注意してください。

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

于 2011-12-16T21:44:48.473 に答える