2013-03-08 16 views
11

私はC#でASP.NETアプリケーションを構築しており、Oracleデータベースに接続したいと考えています。
私のアプリケーションでは、私の64bit Microsoft Window Server 2008マシンでOracle.DataAccessへの参照を追加しました。 私も私のマシン とOracle.DataAccess.dllにODAC(Oracleのデータアクセスコンポーネント)このパスファイルまたはアセンブリ 'Oracle.DataAccessエラーをロードできませんでした

C:\Windows\Microsoft.NET\assembly\GAC_64\Oracle.DataAccess

にも存在しているインストールされているが、私は次のようなエラーが発生した接続しようとしているとき:

Could not load file or assembly 'Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The system cannot find the file specified.

+1

32ビット版をインストールしようとしましたか? –

+0

いいえ、私は64ビット版をインストールしました –

+0

@FelipeOrianiどうすればいいですか?実際に私は64ビットマシンを使用しています。 –

答えて

5

私が知る限り、Oracle.DataAccessアセンブリは32ビットのみで動作しますが、64ビットでもこの種の問題があり、実際には動作しません。私の解決策は、GACから64ビットを削除し、GACに32ビットをインストールすることでした。私はまた、私のアプリケーションにbinフォルダ内の任意の.dllファイルを削除するGAC上のアセンブリを見つける。

マシンと運用システムが64ビットであれば問題ありません。32ビットバージョンは正常に動作します。

UPDATE

私はあなたはそれがOracle.DataAccessより良いバージョンで、Official Oracle ODP.NET, Managed Driverを見てみましょうお勧めします。このManaged Driverはマシン上でOracle Clientを必要とせず、connection stringのDataSourceフィールドにTNSを指定するだけで、3264ビットで正常に動作します。

+0

x64 Oracle.DataAccessアセンブリも動作します。これは、x64のみを使用して別のアセンブリを使用していて、正常に動作しているためです。 私のシステムでなぜそれが起こっているのか分かりません。 @felipe Oriani私の問題を解決するために多くの感謝があなたに行きます。 –

+0

Oracle.DataAccessアセンブリには32ビットと64ビットのバージョンがあり、どちらも問題なく動作します。私は両方のバージョンを使用しました。 –

+0

まだ私のマシンに表示されます。私のマシンは64ビットです –

3

x64とx86の両方のバージョンのOracleをインストールする必要があります。何か(私はそれがVisual Studioだと思います)は、デバッグ時にx86バージョンを使用するからです。私からの最後のポストや他の回答者ごとにODP.NETのインストールコンポーネントが欠落している

+0

私はIISで公開しています。 –

1

本質的に同じエラー

あなたはまだGACをチェックしていますか?

あなたは

あなたが任意の前進を作っていない、Oracle.xxxフォルダが表示されない場合。

Oracle.DataAccess.dllの正しいバージョンとビットをapplication/BINフォルダに置き、ローカル参照を作成します。それは多くの問題を解決します。

+1

Oracle.DataAccess.dllの正しいバージョンについて確信しています。そして私は参照をローカルに置こうとしましたが、それに続くエラーが発生しました。 ファイルまたはアセンブリOracle.DataAccessまたはその依存関係の1つをロードできませんでした。不正な形式のプログラムをロードしようとしました。 –

1

Visual Studioの開発サーバーは32ビットモードでのみ動作するため、Webサイトを実行するにはIISを使用する必要があります。
IISアプリケーションプールでは、アプリケーションを64ビットで実行するように設定します。 (設定は詳細設定です)

1

VS2010では、プラットフォームターゲットをx64に変更しましたが、このエラーメッセージは表示されません。

0

このエラーを解決するために、IISで32ビットアプリケーションを許可するように私のアプリケーションプールを設定しました。 IISマネージャを開き、アプリケーションプールを右クリックし、[詳細設定] - > [32ビットアプリケーションを有効にする]を[True]に設定します。それは私のためにうまくいきます。

関連する問題