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

时间:2014-05-09 09:12:51   收藏:0   阅读:573

自己的应用程序的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"/>节点

即:

bubuko.com,布布扣
  <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>
bubuko.com,布布扣

 

 

 

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

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!