【系統Configmachine.config與自己的應用程序的App.config/Web.Config配置節點重復】解決方法


自己的應用程序的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>

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM