【问题标题】:Server Error "Method not found: 'Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)'."服务器错误“找不到方法:'Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)'。”
【发布时间】:2014-01-20 12:26:50
【问题描述】:

在 Windows 2008 R2 上,在 Virtuozzo 虚拟机上运行,​​使用 Entity Framework 的 ASP.NET MVC 4 Web 会引发异常

Method not found: 'Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)'

具有相同 web.config 的 相同 网络在另一台装有 Windows 2012 的(根)服务器上运行良好,当然也可以在本地开发环境中运行。

我们正在使用 .NET 4.0。堆栈跟踪的顶部如下:

[MissingMethodException:找不到方法:'Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)'。] System.Data.Entity.Internal.LazyInternalContext.InitializeContext() +0 System.Data.Entity.Internal.InternalContext.ExecuteSqlQuery(String sql, Object[] 参数) +34 System.Data.Entity.Internal.InternalContext.ExecuteSqlQueryAsIEnumerable(String sql, Object[] 参数) +91 System.Data.Entity.Internal.InternalContext.ExecuteSqlQuery(类型 elementType,String sql,Object[] 参数)+250 System.Data.Entity.Internal.InternalSqlNonSetQuery.GetEnumerator() +34 System.Data.Entity.Internal.InternalSqlQuery1.GetEnumerator() +28 System.Collections.Generic.List1..ctor(IEnumerable1 collection) +382 System.Linq.Enumerable.ToList(IEnumerable1 源) +80 [...]

我在Can anyone spot why I keep getting this error testing the EF 5 beta 中做了所有建议。没有旧 EF 测试版的痕迹。我重新安装了 .NET 4。

该错误在 Google 上很少见。

我还能尝试什么?

【问题讨论】:

  • @hvd,感谢您的关注。但这指的是开发过程,不是吗,这里一切正常。毕竟,它在另一台服务器上运行,而不是在我们的备份实例上。
  • 啊,对不起,我错过了那一点。你是对的,如果完全相同的网站在一台服务器上运行,而不是在另一台服务器上运行,我的评论将无济于事。
  • 等等 - 不,它仍然是相关的。如果您在 .NET 4.0 项目中使用 .NET 4.5 版本的 Entity Framework,只要您在安装了 .NET 4.5 的系统上运行它,它就可以工作。只有在没有它的服务器上运行时才会开始出现错误。
  • @hvd - 有趣的想法,你是对的。我相信 .NET 4.5 也没有安装在主服务器上,但可能值得尝试安装 4.5。再次感谢。

标签: c# asp.net entity-framework


【解决方案1】:

我也遇到了这个问题,问题是我的工作站上都​​安装了实体框架版本 4.1 和 5。这个特定的程序需要安装在运行 .Net 4 而不是 4.5 的服务器上。 (由于其他原因,我们无法升级服务器。)但是,默认情况下,当我将 ADO.Net 实体数据模型添加到我的项目中时,Visual Studio 添加了对 EF 版本 5 的引用。

通过删除 EF 引用并手动将其添加回版本 4.1,它在服务器上成功运行。

您可能已经通过在服务器上安装 .Net 4.5 解决了这个问题...

【讨论】:

  • 谢谢 - 我也这么认为。
  • manually adding it back as version 4.1 是什么意思?你遵循了什么步骤?
  • 右键单击引用,添加引用,然后浏览到 EF 版本 4.1 的 dll。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-15
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
相关资源
最近更新 更多