質問

ASP.NET Web フォーム アプリを構築し、Win7 ローカル マシン上の .NET 4.0 に対して実行しています。(ローカル ボックスではすべて問題ありません。) 私のアプリは Oracle DB に対して EF4.1 を実行しているため、まだベータ版の Oracle EF データ プロバイダーを使用しています。

現時点では、ローカル VS2010 から Web Deploy を使用してアプリを Win2008 Server ターゲット マシンに正常にデプロイできますが、ターゲット上でアプリを実行すると、クラシックなエラーが発生します。 Unable to find the requested .Net Framework Data Provider エラー。

これが私の (失敗) 現時点でのセットアップ:

  • 32ビットアプリケーションは、 有効 Win2008サーバーターゲットのアプリプール(.NET 4.0)で。

  • ローカルにコピー に設定されています 真実 のために Oracle.DataAccess ローカルの VS2010 ソリューション内の DLL。

  • 両方プラットホーム そして プラットフォームターゲット 設定は次のように設定されています あらゆるCPU 私のローカルのビルド構成で。(私はここで成功せずに異なる設定を試しました。)

  • Win2008 Server ターゲットは次のことを行います。 ない 一つ持っている Oracle.DataAccess GACのDLL。(Oracle DLLにローカルを設定すると、GACが必要ではないことを意味すると思いました。)

編集:GACを試してみました Oracle.DataAccess DLL を実行しましたが、説明されているのと同じエラーが発生します ここ. 。(これについてはまだ調査する必要があります。) また、ターゲット ボックスにはすでに別の Oracle クライアントがあり、Oracle EF データ プロバイダーに付属の Oracle クライアントをインストールすると干渉するようです。このようなことが起こることは許されません。

質問1:2008 Server でアプリを実行できるようにするには、ビルド構成設定 (ローカル ボックス上) と IIS 設定 (ターゲット上) のどのような組み合わせを選択する必要がありますか?

質問2:ターゲットサーバーに別の Oracle クライアントをインストールせずにこれを動作させるにはどうすればよいですか?

ご助力に改めて感謝いたします。

アップデート:すべてが機能しています. 。完全なソリューションへのリンクと役立つ情報へのリンクについては、以下の私の回答を参照してください。

役に立ちましたか?

解決 2

GTGのソリューションは、私の質問1に対する答えの少なくとも一部を提供するので、私は彼のソリューションを支持しています。私の質問2に興味がある人(目立たないODACのインストールの実行方法)には、答えが見つかります ここ. 。 (必要なすべての情報をカプセル化するため、Anthonyvoの答えを探してください。)

私はまだ私のために働くための控えめな解決策を取得することができなかったことに言及する必要がありますが、多くは持っています、そしてそれは私が実装する必要がある解決策です。

アップデート: ケースが閉じた。私はOracle DLLを逃していました。私の完全なセットアップが表示されます ここ.

他のヒント

サーバーには GAC に Oracle.DataAccess がないため、そのマシンに Oracle クライアントがインストールされておらず、アプリの一部として Oracle.DataAccess.dll をデプロイすることでクライアントを機能させようとしていることを示します。

サーバーに何をインストールする必要があるのか​​正確にはわかりません。通常は、サーバー上で Oracle セットアップを実行して、必要な Oracle ファイルと設定がすべてインストールされていることを確認します。これを行う場合、アプリケーションと一緒に Oracle.DataAccess.dll をデプロイする必要はありません。Oracle.DataAccess.dll はすでにサーバーの GAC に存在します。

必要であるとわかっていることの 1 つは、プロバイダーの新しいインスタンスを作成する方法をシステムに指示する構成設定です。その設定を web.config に追加して十分かどうかを試すこともできますが、やはり、Oracle プロバイダーが動作するために必要な依存 DLL と設定が多数存在する可能性があります。

設定は次のとおりです (これは ODP.Net の別のバージョン用です。正しい設定は自分のマシンの machine.config にあります)。

<system.data>
  <DbProviderFactories>
     <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client"
          description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.1.2, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top