1

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

4

2 回答 2

3

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

于 2013-10-03T16:02:38.320 回答
0

我有一个类似的问题,最终得到了不同的解决方案。

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

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

项目属性-> Web

我添加了名称并单击“创建虚拟目录”。该应用程序运行但给了我类似的问题。

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

解决我的问题

为了解决这个问题,我只是更改了端口,因此之前创建的虚拟目录不再是我的根目录。

于 2016-08-01T11:48:36.210 回答