如何使用web.config删除DbProviderFactories?

时间:2013-10-03 13:27:24

标签: c# asp.net sql firebird

我的ASP.NET MVC应用程序出现问题,该应用程序使用SQLSERVER 2012 Expresss来保证安全性,并且这与我在这种情况下未使用的Firebird安装有冲突。得到这样的例外:

  

为system.data创建配置节处理程序时发生错误:列'InvariantName'被限制为唯一。   值'FirebirdSql.Data.FirebirdClient'已存在。

我试图在我的web.config中输入:

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

但这不起作用,我终于做了什么我从machine.config中删除了这个firebird条目:

<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。无论如何要暂时在app web,config中禁用此条目?另外,为什么我要开始这样的冲突呢? 感谢

2 个答案:

答案 0 :(得分:3)

你在machine.config中有两次相同的记录。删除一个,你会没事的。

答案 1 :(得分:0)

我遇到了类似的问题,最终找到了不同的解决方案。

我开始在默认(根)文件夹 IIS 中创建我的Web应用程序。

之后,出于测试目的,我将此选项更改为在同一域中的更深层文件夹中工作:

Project Properties-> Web

我添加了名称并点击了&#34; 创建虚拟目录&#34;。应用程序运行但给了我类似的问题。

当我创建第二个虚拟目录 IIS express时,会发生第一个指向同一位置的情况。所以我有两个相同的应用程序两次分享Web.config。

解决我的问题

为了解决这个问题,我刚刚更改了端口,因此以前创建的虚拟目录不再是我的root用户了。