无法在Visual Studio 2010 Professional中找到请求的.Net Framework数据提供程序

时间:2012-03-29 15:17:24

标签: asp.net .net visual-studio-2010 ado.net datasource

在尝试在Visual Studio 2010 Professional中设置新数据源时,为什么会出现“无法找到请求的.Net Framework数据提供程序”?

我的统计数据:

  • Windows 7 64位16gig RAM
  • Visual Studio 2010 Professional
  • SQL Server 2008(服务器A,完全管理员权限)
  • SQL Server 2008(服务器B,完全管理员权限)

我已经启动了测试ASP.NET应用程序,当我尝试添加新数据源时,我得到:

  

无法找到请求的.Net Framework数据提供程序。它可能没有安装。

我安装了.NET 4。

当我构建连接并单击“测试连接”时,它测试成功。 SQL Server Management Studio连接得很好,我已经验证了所有内容的凭据。

8 个答案:

答案 0 :(得分:56)

我在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>

答案 1 :(得分:13)

我喜欢其他建议,但我宁愿不为单个应用程序更新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>

答案 2 :(得分:3)

在我的情况下,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版本

答案 3 :(得分:1)

我在版本6.7.4中遇到此问题,并通过安装6.5.6版本解决了这个问题。

我的设置是Win 2008 R2 SP1数据中心版,带有Business Intelligence Development Studio的SQL Server 2008 R2(VS2008)。非常基本的安装。

当我安装6.7.4时,我甚至无法将MySQL提供程序视为一种选择。但是,当我查看machine.config文件时,我看到了MySQL角色提供程序等的引用,但是没有添加任何条目。

答案 4 :(得分:1)

我认为我的问题是由于我的machine.config每个答案我在网上找到但是罪魁祸首证明是在项目的web.config中清除了DbProviderFactories。

<system.data>
  <DbProviderFactories>
    <clear />
       ...
  </DbProviderFactories>
</system.data>

答案 5 :(得分:0)

对我有用,谢谢。安装.Net Framework 4.7.1时遇到了这个问题,机器配置中DbProviderFactories下的System.Data设置被清除掉了。在添加了必要的配置设置后,它开始工作,如下所示DataProviderFactories

<system.data>
    <DbProviderFactories>
      <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
      <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
    </DbProviderFactories>
</system.data>

答案 6 :(得分:0)

解决了。使用nuget并搜索“ ODP.NET,托管驱动程序” invariant =“ Oracle.ManagedDataAccess.Client”。

并安装该软件包。会为我解决问题。

答案 7 :(得分:0)

我在Visual Studio 2019中遇到了同样的问题,并且通过在Visual Studio内部的搜索栏中搜索来解决:管理NuGet软件包> oracle.ManagedDataAccess(第一个结果)安装它。然后它应该可以工作!