【问题标题】:Unable to find the requested .Net Framework Data Provider in Visual Studio 2010 Professional在 Visual Studio 2010 Professional 中找不到请求的 .Net Framework 数据提供程序
【发布时间】:2012-04-13 06:37:29
【问题描述】:

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

我的数据:

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

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

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

我安装了 .NET 4。

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

【问题讨论】:

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


    【解决方案1】:

    我看到有人在 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>
    

    【讨论】:

    • 成功了!!!!!!谢谢!!实际上我之前看到过,但我没有想到要删除那个remove this one! 副本。另外,我有四个 machine.config 文件。适用于 32 位和 64 位的版本 2 和版本 4 中的一个。我不得不改变所有四个。非常感谢! +100000
    • 请注意我的修复 - 即使我的机器是 64 位的 .NET 框架 4 -> 是删除了 IBM.Data.DB2... .NET 2 下 machine.config 中的引用修复了 SQL Server Mgmt Studio 的错误
    • 我尝试了这个修复,现在 VS2015 在初始屏幕上关闭,并且不会启动用 .Net4.0 编写的应用程序。有什么想法吗?
    • 更新:我无法编辑我之前的评论,但通过从另一台 PC 复制这些文件来修复它。我还应该指出,安装在这里找到的 Setup_NpgsqlDdexProvider.exe link 首先对我造成了这种混乱。
    【解决方案2】:

    在我的情况下,上述 machine.config 文件中“简单地”缺少 MySQL 的数据提供程序条目(尽管我已经正确安装了 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 的正确版本放在条目上

    【讨论】:

    • 在我的情况下,这一行丢失了,重新安装 MySQL .Net 连接器实际上为我添加了丢失的行... :-)。附:我正在使用this link(无需注册)
    【解决方案3】:

    我喜欢其他建议,但我不想为单个应用程序更新 machine.config。我建议你只是将它添加到 web.config/app.config 中。这是我使用“bin”部署的 MySql 连接器/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>
    

    【讨论】:

    • 有些项目类型没有web.config
    • 另外值得注意的是,如果机器上安装了不同版本的提供程序,则需要在上面的 sn-p 中添加&lt;remove invariant="MySql.Data.MySqlClient" /&gt;。跨度>
    【解决方案4】:

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

    我的设置是 Win 2008 R2 SP1 Data Center edition,SQL Server 2008 R2 with Business Intelligence Development Studio (VS2008)。非常基本的安装。

    当我安装 6.7.4 时,我什至无法选择 MySQL 提供程序。但是,当我查看 machine.config 文件时,我看到了 MySQL 角色提供程序等的引用,但在 .

    中没有添加任何条目

    【讨论】:

    • 这也是我的问题,并按照此处的说明通过安装“用于 Visual Studio 集成的 MySQL”解决了:dev.mysql.com/downloads/connector/net 我不太确定它是什么,但他们将其从之前所在的连接器包。
    【解决方案5】:

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

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

    【讨论】:

    • 虽然这不是我的问题,但它引导我到 那里有人设置它以删除提供程序。去搞清楚???这是一个我必须接手的项目,所以我只需要筛选问题。我的 web.config 有这个:。评论说,宾果游戏,我回来工作了。
    【解决方案6】:

    它对我有用,谢谢。我在安装.Net Framework 4.7.1 时遇到了这个问题,不知何故,机器配置中System.Data 下的DbProviderFactories 设置被清除了。添加必要的配置设置后它开始工作,如下所示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>
    

    【讨论】:

      【解决方案7】:

      解决了。使用 nuget 并搜索“ODP.NET, Managed Driver” invariant="Oracle.ManagedDataAccess.Client"。

      并安装软件包。它将为我解决问题。

      【讨论】:

        【解决方案8】:

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

        【讨论】:

          猜你喜欢
          • 2012-06-06
          • 1970-01-01
          • 2013-02-18
          • 2012-04-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-24
          相关资源
          最近更新 更多