【问题标题】:Visual Studio - The specified store provider cannot be found in the configuration, or is not validVisual Studio - 在配置中找不到指定的商店提供程序,或无效
【发布时间】:2014-12-15 18:01:26
【问题描述】:

在尝试构建/运行我的其他团队正在使用且没有问题的解决方案时,我不断收到以下错误消息。

  • 在运行时实例化 DbContext 时抛出异常:“在配置中找不到指定的存储提供程序,或者无效”
  • 内部异常:“无法找到请求的 .Net Framework 数据提供程序。它可能未安装”

使用完全相同的代码/项目/配置,其他 3 名队友对此没有任何问题。

我们使用 VS2013、EF 5.0、Oracle Client for .NET、Windows 7 x64 连接字符串:

metadata=res://*/BpmModel.csdl|res://*/BpmModel.ssdl|res://*/BpmModel.msl;provider=Oracle.ManagedDataAccess.Client;provider connection string="DATA SOURCE=BpmOracle;PASSWORD=xxxxxxx;PERSIST SECURITY INFO=True;USER ID=xxxxxx;" providerName="System.Data.EntityClient"

到目前为止,我们已经尝试过:

  • 卸载并重新安装 VS2013
  • 安装 VS2014 更新 4
  • 创建和重新创建解决方案和工作区大约 3-4 次
  • 实体框架已安装
  • TNSNames.ora 是正确的

我们还可以尝试解决这个难题吗?

【问题讨论】:

  • 您是否安装了正确的提供程序?可能你使用的 EF6 版本与旧版 EF5 不兼容
  • 我刚刚仔细检查并安装了 EF5。还有其他建议吗?我已经没有选择了。

标签: oracle entity-framework visual-studio-2012


【解决方案1】:

我已经解决了这个问题。 在 IIS 中切换到 32 位应用程序就成功了。

详情:

  • 打开 IIS
  • 解开连接列表(很可能是计算机名称)
  • 点击应用程序池
  • 对于列出的每个应用程序:
    • 右键>>高级设置
    • 将“启用 30 位应用程序”设置为 True

【讨论】:

  • 在 IIS 上启用 32 位也解决了我的问题,但我必须将项目的平台目标设置为 x86(在项目属性中)
【解决方案2】:

您是否在提供程序部分的 app.config/web.config 中注册了您的 oracle 提供程序?查看thisthis 以供参考。

【讨论】:

    【解决方案3】:

    我对这个问题的解决方案是在 Web.config 中添加所需的配置,通过 NuGet 安装缺少的包。

    右键单击您的解决方案或项目,单击管理 NuGet 包,然后安装缺少的 Oracle 参考。这应该使用参考修改您的 Web.config。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      • 1970-01-01
      • 1970-01-01
      • 2022-12-22
      • 1970-01-01
      相关资源
      最近更新 更多