服务器错误"未找到方法:' Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)'。"

时间:2014-01-20 12:26:51

标签: c# asp.net entity-framework

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

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

具有相同web.config的相同的 Web在使用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(Type elementType,String sql,Object []参数)+250      System.Data.Entity.Internal.InternalSqlNonSetQuery.GetEnumerator()+34      System.Data.Entity.Internal.InternalSqlQuery 1.GetEnumerator() +28 System.Collections.Generic.List 1..ctor(IEnumerable 1 collection) +382 System.Linq.Enumerable.ToList(IEnumerable 1 source)+80      [...]

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

此错误在Google上很少见。

我还能尝试什么?

1 个答案:

答案 0 :(得分:4)

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

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

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