【问题标题】:Error 175: The specified data store provider cannot be found错误 175:找不到指定的数据存储提供程序
【发布时间】:2010-12-14 22:03:37
【问题描述】:

我正在使用带有MySQL .NET Connector 的VS2010。我曾经工作的项目开始报告:

错误 175:找不到指定的数据存储提供程序,或无效。

我不知道为什么,虽然在 MS 推荐 VS 的修补程序后事情变得很奇怪。

果然,如果我在项目中添加一个测试 ADO.NET 实体数据模型,当我选择“从数据库生成”时,生成 .edmx 文件的实体数据模型向导不会显示数据提供者。更糟糕的是,右键单击并尝试在现有 .edmx 文件上执行“从数据库更新模型...”会使 VS2010 陷入只能通过任务管理器终止的对话框的死亡螺旋。

我是这样解决的:关闭 VS2010。完全卸载 MySQL 连接器。重启。完全安装 MySQL 连接器。重启。重启VS2010。

突然间,我的数据提供者出现了。我可以编译我的代码。以及添加测试 .edmx 文件。向导会看到我的 MySQL 数据库,通过测试连接,并使用我的关系表构建对象模型。我可以随心所欲地清理/重建。

在我运行应用程序之前一切正常。我的“修复”没有坚持。

此时会引发异常,说明连接对象返回 null,如果我在没有更改代码的情况下重新编译,我会再次收到 Error 175 错误。起泡、冲洗、重复。

一些experiments based off of this StackOverflow answer,表明连接字符串是有效的,并且使用 MySqlConnection 对象,我可以在这种状态下访问数据库并滚动我自己的工作查询 .

问题似乎是数据存储提供者不知何故迷路或被踩到,这影响了通过 EntityFrameworks 执行操作的能力。

我正在寻找一些关于在哪里查找这些存储的建议,是否有人遇到过类似的事情,以及是否有任何有用的建议或想法你认为我可以尝试。

更新 -- 虽然这个花絮并没有解决我的问题,它确实让 VS2010 更稳定:在卸载 .NET 连接器后,我立即在控制面板的安装了程序,发现还安装了一个较旧的 .NET 连接器。我从控制面板卸载了那个,重新启动,然后然后安装了新的。 VS2010 现在可以记住使用 EntityFrameworks 的数据库提供程序。显然我安装了一个较新的 MySQL 连接器,认为它会卸载旧的连接器,而不是它们互相踩。

现在我在System.Data.Entity.dll 内收到一个System.ArgumentException,说明略有不同的消息:

在配置中找不到指定的商店提供程序,或者无效。 System.ArgumentException:找不到请求的 .Net Framework 数据提供程序。 可能没有安装。

这发生在System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) 方法中。

REVISION NOTE -- 上面删除的原因是 VS2010 最终确实再次丢失了设置。但我能够从控制面板卸载 .Net 连接器并再次重新安装连接器,而无需重新启动,并让我的数据提供程序再次回到环境中。这部分问题感觉更像是 VS2010 错误,而不是 .NET 连接器问题。

【问题讨论】:

  • 决定更改连接的名称并导致不同的错误,“在配置中找不到指定的命名连接,不打算与 EntityClient 提供程序一起使用,或两者兼而有之。 "所以我把它放回去,证明我确实使用了正确的 app.config 连接字符串,如前所述,它确实连接到数据库。
  • 直接在VS2010中进行了另一个实验:转到工具/连接到数据库...,按更改...,选择MySQL数据库并从“.NET Framework Data Provider for MySQL”下方的下拉列表中,然后按确定。提供服务器名称 localhost、用户名 root 和 MySQL 密码。按测试连接报告“测试连接成功”。然后我按 OK。同时,数据库名称下拉菜单保持禁用状态(尽管我知道我有一个数据库),如果我按 OK,我会弹出“无法找到请求的 .Net Framework 数据提供程序。它可能没有安装。”
  • 完全卸载 MySQL 的一切——数据库、工作台、连接器。随后重新安装最新最好的版本。不用找了。错误 175 仍然出现。我非常怀疑配置问题,但不知道在哪里查看。
  • 这可能是相关的——添加 .edmx 会导致 machine.config 获取其 MySQL 条目:social.msdn.microsoft.com/Forums/en-US/wcf/thread/…
  • VS2010 是否使用 MySQL 6.3 连接器要求 仅使用 .NET 4,见底部dev.mysql.com/doc/refman/5.1/en/connector-net-versions.html

标签: .net mysql visual-studio-2010 entity-framework dataprovider


【解决方案1】:

我在重新安装 Windows 后遇到了同样的错误,忘记添加 SQlite 的提供程序。
here,虽然没提,但完全支持VS 2010。

【讨论】:

  • 谢谢!像魅力一样工作。
【解决方案2】:

在重大更新后问题消失了——看来这毕竟是环境/驱动程序错误。

【讨论】:

    【解决方案3】:

    我刚刚重启了我的VS2010,错误就消失了!!

    【讨论】:

      【解决方案4】:

      根据网上的一些 cmets,这可能与提供商不在 GAC 中有关。

      也可能是旧版本是 GAC。

      检查 GAC 中的内容,如果缺少,请将 dll 添加到 GAC。在 GAC 中进行任何更改后重新启动计算机。

      【讨论】:

        【解决方案5】:

        我最近遇到了这个错误,经过多次重新启动/重新安装后发现问题实际上是“连接器”用户在视图上的权限不足。

        【讨论】:

          【解决方案6】:

          我只需重新启动 IDE 即可修复错误。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-12-15
            • 1970-01-01
            • 1970-01-01
            • 2015-06-16
            相关资源
            最近更新 更多