11

私はVS 2012 Web Project Upを持っています。私たちは Oracle Workshop であるため、ODP.NET をインストールしました。Oracle.ManagedAccess.Data と EF を使用するプロジェクトを継承しました。

VS 2012 でプロジェクトを実行すると、次のエラーが発生します。

There is a duplicate 'oracle.manageddataaccess.client' section defined..

解決策は、web.config で次の行を無効にすることでした。

<!--<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />-->

それは大丈夫でした。プロジェクトはコンパイルされましたが、データベースを読み取る必要がある場所でパスワードを取得するなどの単純なコマンドを実行すると、別のエラーが発生しました。

System.Data.ConstraintException: Column 'InvariantName' is constrained to be unique.  Value 'Oracle.ManagedDataAccess.Client' is already present.

ODP.NETによってエラーが発生し、GACに存在するため、二重のエラー報告が発生することがわかりました。

コメントアウトする必要がある別の行はありますか、または ODP.NET を一時的に無効にする方法はありますか? 他のプロジェクトで使用しているため、そのクライアントをインストールしたくありません。

ありがとう

4

3 に答える 3

20

「重複した 'oracle.manageddataaccess.client' セクションが定義されています。」に関して、Oracle サイトで以下を見つけました。:

アプリケーションが Web アプリケーションで、上記のエントリが web.config に追加され、"oracle.manageddataaccess.client" の同じ構成セクション ハンドラが machine.config にも存在するが、"Version" 属性の値が異なる場合、エラーが発生します。 「重複した 'oracle.manageddataaccess.client' セクションが定義されています。」というメッセージが表示されます。実行時に観察されることがあります。その場合、Web アプリケーションでこのエラーが発生しないように、machine.config の「oracle.manageddataaccess.client」の config セクション ハンドラ エントリを machine.config から削除する必要があります。. ただし、machine.config のこのエントリに依存するマシン上に他のアプリケーションが存在する可能性があることを考えると、この構成セクション ハンドラ エントリは、それに依存するそのマシン上のすべてのアプリケーションの .NET 構成ファイルに移動する必要がある場合があります。

お役に立てば幸いです。

于 2015-12-17T17:03:10.753 に答える