c# - System.MonoEnumInfo.get_enum_info 中的 SIGSEGV

标签 c# linux entity-framework mono

我正在尝试在 Linux 上的 Mono 中运行 C# 应用程序。我正在使用 EF6,它有一些映射到枚举的类型。我的应用程序第一次查询数据库(VistaDB)时,我得到以下堆栈跟踪(它实际上要大得多......)

at <unknown> <0xffffffff>
at (wrapper managed-to-native) System.MonoEnumInfo.get_enum_info (System.Type,System.MonoEnumInfo&) <IL 0x0000e, 0xffffffff>
at System.MonoEnumInfo.GetInfo (System.Type,System.MonoEnumInfo&) [0x00076] in /build/buildd/mono-3.2.8+dfsg/mcs/class/corlib/System/Enum.cs:176
at System.Enum.GetNames (System.Type) [0x0002d] in /build/buildd/mono-3.2.8+dfsg/mcs/class/corlib/System/Enum.cs:334
at System.Data.Entity.Core.Metadata.Edm.EnumType..ctor (System.Type) <IL 0x00056, 0x001eb>
at System.Data.Entity.Core.Metadata.Edm.ClrEnumType..ctor (System.Type,string,string) <IL 0x00002, 0x00027>
at System.Data.Entity.Core.Metadata.Edm.OSpaceTypeFactory.TryCreateEnumType (System.Type,System.Data.Entity.Core.Metadata.Edm.EnumType,System.Data.Entity.Core.Metadata.Edm.EdmType&) <IL 0x00027, 0x0009f>
at System.Data.Entity.Core.Metadata.Edm.OSpaceTypeFactory.TryCreateType (System.Type,System.Data.Entity.Core.Metadata.Edm.EdmType) <IL 0x0003b, 0x000eb>
at System.Data.Entity.Core.Metadata.Edm.ObjectItemConventionAssemblyLoader.LoadTypesFromAssembly () <IL 0x0006c, 0x0010c>
at System.Data.Entity.Core.Metadata.Edm.ObjectItemAssemblyLoader.Load () <IL 0x00007, 0x0001f>
at System.Data.Entity.Core.Metadata.Edm.ObjectItemAssemblyLoader.LoadAssemblies (System.Collections.Generic.IEnumerable`1<System.Reflection.Assembly>,System.Data.Entity.Core.Metadata.Edm.ObjectItemLoadingSessionData) <IL 0x00019, 0x00072>
at System.Data.Entity.Core.Metadata.Edm.ObjectItemAssemblyLoader.LoadClosureAssemblies () <IL 0x00011, 0x00023>
at System.Data.Entity.Core.Metadata.Edm.ObjectItemAssemblyLoader.Load () <IL 0x00013, 0x00031>
...
Native stacktrace:

mono() [0x4b73d8]
mono() [0x50f13b]
mono() [0x423d22]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x10340) [0x7fd7577c0340]
mono(mono_class_from_mono_type+0x6) [0x525736]
mono() [0x5428a4]
[0x41d0d6f3]
...
=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

基于此我怀疑 Mono 有问题。我正在运行带有 Mono 3.2.8 的 Ubuntu 14(使用 apt-get 安装)。还有其他人遇到过这个吗?如果我从 EF 中删除枚举映射会解决问题吗?

更新

我尝试在运行 Mono 3.4 的 macbook 上运行相同的命令,但出现了相同的错误。所以我怀疑这是 Mono 的一个错误。

最佳答案

我升级到了 mono 3.6.1,EF 似乎运行良好!看起来 mono 3.2.8 不适用于 EF 6 和 vista db

关于c# - System.MonoEnumInfo.get_enum_info 中的 SIGSEGV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24895011/

相关文章:

c# - 重命名正在运行的可执行 (exe) 文件

c# - Irony 不会使用 Irony 提供的 C# 语法解析 C#

C# & LINQ,一次选择两个(连续的)项目

linux - 过滤掉两个文件之间的内容

c# - LINQ to SQL 为类似的分组依据表达式生成不同的查询

c# - Silverlight:将文件流式传输到新的 HTML 浏览器窗口以提示用户到 "open or save as..."?

c - 子进程向管道写入内容后无法从管道读取

python - Python中的自动重启系统

javascript - 如何在AJAX错误方法中检索DbContext SqlException?

asp.net-mvc - 了解 Entity Framework 中的虚拟属性和计算属性