您的位置:首页 > 移动开发

【系统Configmachine.config与自己的应用程序的App.config/Web.Config配置节点重复】解决方法

2014-05-09 07:26 1196 查看
自己的应用程序的App.config或Web.Config文件中与
系统的C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Configmachine.config文件
1.重复如下配置:

<DbProviderFactories>
<add name="MySQL Data Provider2" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>


会抛出异常如下:

Exception is: ConfigurationErrorsException - 创建 system.data 的配置节处理程序时出错: 列“InvariantName”被约束为是唯一的。值“MySql.Data.MySqlClient”已存在


2.如果两者都不配置,会抛出如下异常:

Exception is: ArgumentException - Can't load DbProviderFactory for given value of providerType


实际当中,会碰到如下问题:

  有些数据库安装出问题的话,系统的Configmachine.config文件中不会配置

<add name="MySQL Data Provider2" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />


由于以上的不确定性,我们在自己应用程序的app/web.config文件中配置这个节点就可能会因重复配置造成异常。

解决方法:

在自己应用程序的app/web.config文件中添加这个节点:

<remove invariant="MySql.Data.MySqlClient"/>节点

即:

<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient"/>
<add name="MySQL Data Provider2" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.My SqlClient.MySqlClientFactory, MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐