2011-09-17 46 views
1

我想獲得MVC 3應用程序使用MySql數據庫,但我不斷收到錯誤,我已經在我的Web中做了以下連接字符串和提供程序。配置文件無法獲得我的連接到一個MySQL從asp.net mvc項目工作

<connectionStrings> 
    <add name="DefaultConnection" connectionString="server=xxxxx.unoeuro.com; userid=xxxxx_dk;password=xxxxx;pooling=yes;Database=xxxxx_dk_db" providerName="MySql_db"/> 
</connectionStrings> 

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

但是當我嘗試使用它(只是想使用處於默認項目的默認註冊用戶)我得到這個錯誤

出錯創建配置節處理程序對於 system.data:「InvariantName」列被限制爲唯一。 值'MySql.Data.MySqlClient'已經存在。

但我如果我刪除了DbProviderFactories我剛剛得到一個錯誤,有丟失數據提供者,所以它不是監守我在連接字符串複製它的任何地方

+0

從您的web.config剪下DbProviderFactories部分,併發布此操作後得到的錯誤。這不應該需要。 – tugberk

+0

如果我刪除,那麼我只是「無法找到所需的.Net Framework數據提供程序,它可能不會安裝。」 – Mech0z

回答

3

基於@Ladislav Mrnka的回答,錯誤可能是由於Web.config中的設置與machine.config中的設置衝突而導致的。要消除錯誤,請按如下所示向Web.config中添加「刪除」標記。

<system.data> 
    <DbProviderFactories> 
     <remove invariant="MySql.Data.MySqlClient"/> 
     <add name="MySql_db" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.1.54.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/> 
    </DbProviderFactories> 
</system.data> 
1

提供程序名稱必須設置的固定名稱供應商工廠。此錯誤最有可能表示您已在機器上安裝MySql.Data.MySqlClient並在Machine.config中註冊。

+0

我遵循了一個指南,並在我的Server explorere中將我的MySql數據庫添加爲OCDB連接,現在我只是懷疑我的連接字符串應如何看待 – Mech0z

+0

http://www.gratisimage.dk/graphic/images/2011/September/17 /697D_4E74EEC4.jpg – Mech0z

+0

您不能直接使用ODBC,因爲它不受EF支持。 –