64ビットのWindows上で32ビットOracleクライアントを使用するようにWebサイトをコンパイルする方法

StackOverflow https://stackoverflow.com/questions/1707101

質問

私はWindows 7の64ビット版に更新して、既存の.NET Webサイトを実行した後にこのエラーを受け取っています。

  

[例外InvalidOperationException:Oracleクライアントライブラリをロードしようとは、BadImageFormatExceptionを投げました。 Oracleクライアントコンポーネントがインストールされて32ビットと64ビットモードで実行している場合、この問題が発生します。

私は唯一の32ビットOracleクライアントがインストールされインストールされていると私は明示的に述べられない限り、私の64ビットの開発マシン上でアプリケーションが64ビットライブラリを期待していることを理解しています。これは私がこれまで行ってきた検索からです。

私は、私はそれが見つけたものだ場合、アプリケーションは32ビットを使用するように指示しますのx86にソリューションプラットフォームを変更することができることを読みました。私はこれをやりたいが、Visual Studioのソリューションでのウェブサイトにはx86のオプションがありません。

私は、テストアプリケーションを作成し、私は選択肢を持って、私はテストのウェブサイトを作成し、それはしませんでした。それは、32ビットのOracle Clientを使用するように、どのように私は、x86のウェブサイトをコンパイルすることができます。

乾杯

役に立ちましたか?

解決

IISマネージャで、アプリケーションプールを作成し、アプリケーションプールが32ビットモードで実行することを設定します。そして、その32ビットアプリケーションプールで実行するように32ビットのOracleクライアントを使用してウェブサイトを割り当てます。

これは32ビットモードであなたのアセンブリをロードしますので、それが32ビットのCLRをロードするCLRをロードしようとするとき、IISワーカープロセスは、32ビットプロセスはそのアプリケーションプールのために開始しますので。これは、あなたのアセンブリは、64ビットおよび32ビットモード用にコンパイルされた場合も同様です。 32ビットモードで実行しているアセンブリは、その後、32ビットモードで実行されているOracleクライアントを呼び出すことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top