2012-03-29 71 views
26

當試圖在Visual Studio 2010 Professional中設置新的數據源時,爲什麼會出現「無法找到請求的.Net Framework數據提供程序」?無法在Visual Studio 2010 Professional中找到請求的.Net Framework數據提供程序

我的統計:

  • 64位Windows 7 16gig RAM
  • 的Visual Studio 2010專業
  • 的SQL Server 2008(服務器A,完整的管理權限)
  • 的SQL Server 2008(服務器B,全管理員權限)

我已經開始測試ASP.NET應用程序,當我嘗試添加新的數據源,我得到:

無法找到請求的.Net Framework數據提供程序。它可能沒有安裝。

我安裝了.NET 4。

當我建立連接並單擊「測試連接」時,測試成功。 SQL Server Management Studio連接就好了,我已經驗證了所有的證書。

回答

52

我看到有人在machine.config文件中擁有和附加的自我終止節點。刪除它解決了他們的問題。 machine.config在\Windows\Microsoft.net\Framework\vXXXX\Config中找到。您可以根據安裝的框架的多少個版本擁有大量的配置文件,包括32位和64位的變體。

<system.data> 
    <DbProviderFactories> 
     <add name="Odbc Data Provider" invariant="System.Data.Odbc" ... /> 
     <add name="OleDb Data Provider" invariant="System.Data.OleDb" ... /> 
     <add name="OracleClient Data Provider" invariant="System.Data ... /> 
     <add name="SqlClient Data Provider" invariant="System.Data ... /> 
     <add name="IBM DB2 for i .NET Provider" invariant="IBM.Data ... /> 
     <add name="Microsoft SQL Server Compact Data Provider" ... />  
    </DbProviderFactories> 

    <DbProviderFactories/> //remove this one! 
</system.data> 
+2

那工作!!!!!!謝謝!!實際上,我早先看到過,但我沒有想到刪除這個「刪除這個!」副本。另外,我有四個machine.config文件。一個在版本2和版本4的32和64位。我必須改變所有四個。非常感謝! +100000 – cbmeeks 2012-03-29 17:19:00

+3

有關我的修復程序的注意事項 - 即使我的計算機是64位.NET框架4 - >它刪除了.NET.Net中的machine.config中的IBM.Data.DB2 ...引用,它修復了SQL中的錯誤服務器管理工​​作室 – 2016-04-04 14:04:58

+0

我試過這個修復,現在VS2015在啓動畫面關閉,沒有任何應用程序用.Net4.0編寫。有任何想法嗎? – Noobie3001 2016-07-14 14:20:58

2

在我的情況MySQL的數據提供項目被「簡單地」在上述machine.config文件丟失(儘管我已經正確安裝了MySQL連接器)

<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.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 

不要忘記將正確版本的MySQL放在條目上

+0

在我的情況下,這一行丟失了,重新安裝MySQL .Net Connector實際上爲我添加了缺失的行...... :-)。附:我正在使用[此鏈接](http://mirrors.dotsrc.org/mysql/Downloads/Connector-Net/)(不需要註冊) – itsho 2013-05-17 13:33:13

9

我喜歡其他建議,但我寧願不更新machine.config以適應單個應用程序。我建議你只需將它添加到web.config/app.config。這是我需要使用我「bin」部署的MySql Connector/NET。

<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.6.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
    </DbProviderFactories> 
</system.data> 
+1

有一些項目類型沒有'web.config'。 – ajeh 2014-07-08 20:05:17

+3

另外值得注意的是,如果機器上安裝了不同版本的提供程序*,則需要在上面的代碼段中添加一個''。 – 2014-07-26 00:23:22

1

我有這個問題,6.7.4版本,並通過安裝版本6.5.6解決它。

我的設置是Win 2008 R2 SP1數據中心版本,SQL Server 2008 R2與商業智能開發工作室(VS2008)。非常基本的安裝。

當我安裝6.7.4時,我甚至看不到MySQL提供者作爲選擇。不過,當我查看machine.config文件時,我看到了MySQL角色提供者等的參考,但沒有添加條目。

+1

這也是我的問題,通過按照此處的指示安裝「MySQL for Visual Studio集成」已得到解決:http://dev.mysql.com/downloads/connector/net/ 我很不確定什麼它是,但他們將它從之前的連接器包中移除。 – splitfeed 2013-10-24 07:21:36

0

我以爲我的問題是由於我的machine.config我在網上發現的答案,但罪魁禍首竟然是在清理DbProviderFactory的項目的web.config。

<system.data> 
    <DbProviderFactories> 
    <clear /> 
     ... 
    </DbProviderFactories> 
</system.data> 
相關問題