9

ODP.NEtライブラリを.NETDBProviderFactoriesで動作させるのに問題があります。このコードで次のエラーが発生します:

_DBFactory = DbProviderFactories.GetFactory(providerName);

system.dataの構成セクションハンドラーの作成中にエラーが発生しました:列'InvariantName'は一意になるように制約されています。値「Oracle.DataAccess.Client」はすでに存在します。

このプロバイダー名:Oracle.DataAccess.Client

そして、web.configの次のエントリ:

  <system.data>
    <DbProviderFactories>
      <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description=".Net Framework Data Provider for Oracle" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=10.2.0.100, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </DbProviderFactories>
  </system.data>

誰かが何が悪いのか知っていますか?どこにも2回設定しているとは思いません。

4

4 に答える 4

8

ODP.net をインストールした場合 (たとえば、xcopy ではなく oracle ユニバーサル インストーラを使用)、machine.config に同じ DbProviderFactories/add があります。

したがって、web.configに追加すると、もう一度追加されます-つまり、Oracle.DataAccess.Clientを複製します!

于 2010-03-16T10:37:34.823 に答える
6

以下はできますか?(「クリア」に注意してください)

  <system.data>
    <DbProviderFactories>

      <clear />

      <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description=".Net Framework Data Provider for Oracle" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=10.2.0.100, Culture=neutral, PublicKeyToken=89b483f429c47342" />

    </DbProviderFactories>
  </system.data>
于 2013-01-22T19:14:33.640 に答える