2012-01-02 91 views
10

我已經用C#編寫了一個程序集來執行MySQL數據庫的所有數據訪問。我已經成功地在我的C#winform桌面應用程序中使用了彙編(一個已編譯的dll)。但它只適用於安裝了「MySQL Connector Net 6.4.4」的電腦。MySQL實體框架錯誤 - 在配置中找不到指定的存儲提供者,或者無效

我試圖用我的asp.net網站項目使用相同的程序集。首先,我得到了關於缺少連接字符串的錯誤。這很容易通過將MySQL連接字符串添加到web.config文件來解決。我現在得到這個錯誤(下面列出的堆棧跟蹤),我已經嘗試將下面的dll添加到我的bin文件夾來解決它,但它不起作用。

MySql.Data.dll 
MySql.Data.Entity.dll 
MySql.Web.dll 

System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. 
---> System.ArgumentException: The specified store provider cannot be found in the configuration, or is not valid. 
---> System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed. at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) at System.Data.EntityClient.EntityConnection.GetFactory(String providerString) 
--- End of inner exception stack trace 
+0

是否在連接字符串具有的providerName =「System.Data .EntityClient「屬性呢? – GemCer 2012-01-02 21:05:29

+0

是的,我只是檢查確定。 – Hoody 2012-01-02 22:27:57

回答

32

但它僅適用於那些有「MySQL連接網絡6.4.4」安裝電腦。

這是否意味着您正嘗試在未安裝提供程序的機器上運行您的代碼?在這種情況下,您還必須在您的配置文件中註冊提供程序,因爲安裝會將其添加到machine.config中,如果您未安裝它,提供程序當前未註冊。

嘗試添加到您的web.config文件:

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

謝謝,我今晚會嘗試這個。爲了將來的參考,在這些場景中確定需要添加到配置文件的最簡單方法是什麼? – Hoody 2012-01-03 09:27:50

+0

這工作,再次感謝。 – Hoody 2012-01-03 19:47:32

+3

儘管我的MySql.Data.dll完全符合這些特徵(根據IL Spy) – Pakman 2013-01-04 07:01:53

6

我發現我使用的是獨立的.NET連接器6.6.5安裝程序時,有這個問題了。

要解決這個問題,只需卸載獨立的.NET連接器安裝程序,然後安裝mysql-community-installer,此安裝程序允許您向MySQL添加/刪除功能,並且其中一個功能是.NET連接器實體框架支持。

一旦你使用這個連接器,你所有的MySQL EF問題就會消失。

+2

yup,但我必須刪除「Version = 6.4.4.0,Culture = neutral ...」!這固定它! – 2013-06-20 21:15:52

+0

在MySQL社區安裝程序中存在問題,因爲視覺工作室位的下載保持失敗。通過下載完整的180MB安裝程序而不是1.5MB安裝程序來解決此問題。上面然後解決了這個問題。 – Knightsy 2013-08-30 09:04:37

+0

@Greg ....這完全工作!!!!!!。我遇到了這個問題將近2個小時,解決方案是卸載獨立連接器(在我的情況下,它是由Oracle提供的) – atp9 2016-02-17 23:43:41

0

卸載所有.net框架並重新安裝後,出現此錯誤(我正在使用.net連接器6.4.3)。此修復程序是卸載6.4.3安裝6.6.5

3

在web配置

<system.data> 
    <DbProviderFactories> 
     <remove invariant="MySql.Data.MySqlClient" /> 
     <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data" /> 
    </DbProviderFactories> 
    </system.data> 
2

添加這對於人們通過谷歌像我這樣做,達到這個老問題:

您也將獲得這個錯誤如果你升級到Visual Studio 1.1.3的MySQL,這是與Visual Studio 2013的第一個兼容版本,但仍然使用MySQL連接器6.6.6,據我所知是最後一個與Entity Framework兼容的版本4.3.1。

我們知道我們必須更新至EF5(或6)儘快,但現在這迫使在一個非常不方便的時間在我們身上的改變......

相關問題