標籤:des style blog class code java
自己的應用程式的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>