1

セキュリティのために SQLSERVER 2012 Expresss を使用している ASP.NET MVC アプリに問題があり、この場合は使用されていない Firebird インストールと競合しています。次のような例外を取得します。

system.data の構成セクション ハンドラーの作成中にエラーが発生しました: 列 'InvariantName' は一意に制限されています。値 'FirebirdSql.Data.FirebirdClient' は既に存在します。

これをweb.configに入力しようとしました:

<remove invariant="FirebirdSql.Data.FirebirdClient"/>

しかし、それは機能しませんでした。私が最終的に行ったことは、このfirebirdエントリをmachine.configから削除しました:

<system.data>
<DbProviderFactories>
<add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".NET Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient, Version=3.0.2.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c"/><add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".NET Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient, Version=3.0.2.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c"/></DbProviderFactories>

それはうまくいきましたが、時々使用するfirebirdが必要なため、これは理想的なソリューションではありません。とにかく、アプリの web,config でこのエントリを一時的に無効にするには? また、そもそもなぜこのような競合が発生するのですか? ありがとう

4

2 に答える 2

3

machine.config に同じレコードが 2 回あります。1つ削除すれば問題ありません。

于 2013-10-03T16:02:38.320 に答える