ServiceStack Ormlite:System.InvalidProgramException JIT 编译器遇到内部限制

Posted

技术标签:

【中文标题】ServiceStack Ormlite:System.InvalidProgramException JIT 编译器遇到内部限制【英文标题】:ServiceStack Ormlite: System.InvalidProgramException JIT Compiler encountered an internal limitation 【发布时间】:2014-09-19 09:24:46 【问题描述】:

您好,我正在使用 Ormlite 运行 ServiceStack,但遇到了这个错误。以前它工作正常。我不确定我所做的更改会导致此错误。我只是使用了一个简单的 db.Select() 调用,它抛出了这个错误。我尝试了各种方法,比如更新 nuget 包、清理和重建项目等,但都没有奏效。

System.InvalidProgramException was caught
  _HResult=-2146233030
  _message=JIT Compiler encountered an internal limitation.
  HResult=-2146233030
  IsTransient=false
  Message=JIT Compiler encountered an internal limitation.
  Source=ServiceStack.OrmLite
  StackTrace:
       at ServiceStack.OrmLite.OrmLiteConfig.get_ExecFilter()
       at ServiceStack.OrmLite.ReadConnectionExtensions.Exec[T](IDbConnection dbConn, Func`2 filter)
       at ServiceStack.OrmLite.ReadConnectionExtensions.Select[T](IDbConnection dbConn, Expression`1 predicate)
   InnerException: 

谁能建议可能出了什么问题?

【问题讨论】:

这通常意味着程序已损坏。您的所有ServiceStack 程序集都完好无损吗?其中一个可能会损坏吗?也许尝试重新下载它们并再次引用它们。 我刚刚从头开始做了一个简单的 ServiceStack 应用程序,它给了我同样的错误!有些东西搞砸了,但我不知道是什么。嗯.. 可能要jitted的方法是动态生成的,太大或达到了其他限制。 【参考方案1】:

我关闭了 IntelliTrace,它又可以工作了。

【讨论】:

您使用的是哪个版本的 Visual Studio? Visual Studio 2013 Ultimate 您使用的是“仅限活动”还是“活动和通话信息”? 您可以在 IntelliTrace 设置的模块例外列表中添加“ServiceStack.”。这样,您仍然可以为您的图书馆提供活动和通话信息。 对我来说也一样。我在我的 WCF 项目中提出了这个异常。调试 WCF 源代码发现此 InvalidProgramException 发生在这一行 MethodInfo opMethod = opDesc.OperationMethod;其中 opDesc 是 System.ServiceModel.Description.OperationDescription 的一个实例。它只发生在“事件和呼叫信息”中,而不是“仅限事件”。

以上是关于ServiceStack Ormlite:System.InvalidProgramException JIT 编译器遇到内部限制的主要内容,如果未能解决你的问题,请参考以下文章

使用 ServiceStack.ORMLite 的存储库模式中的事务

如何修改 ServiceStack.OrmLite 生成的 SQL?

ServiceStack OrmLite 连接Sqlserver数据库

OrmLite(ServiceStack):仅使用临时数据库连接(使用“使用”?)

在运行时在 ServiceStack.OrmLite 中获取类的表名/避免硬编码表名

在 SQL Server 和 ServiceStack.OrmLite 中使用架构名称