我正在尝试使用 Mono 将 ASP MVC 3 (.NET Framework 4.0) 应用程序部署到 ubuntu 12.04。这是我安装的 Mono 的当前版本:
Mono JIT 编译器版本 2.10.8.1 (Debian 2.10.8.1-1ubuntu2.2) 版权所有 (C) 2002-2011 Novell, Inc、Xamarin, Inc 和贡献者。www.mono-project.com TLS:__thread SIGSEGV:altstack 通知:epoll 架构:amd64 已禁用:无 杂项:softdebug LLVM:支持,未启用。GC:包括 Boehm(带类型 GC 和 Parallel Mark)
为了确切知道代码在哪里中断,我删除了 ASP 项目并从控制台应用程序运行我的方法,以便我可以调试。我发现这是我的代码破坏的方法:
public IEnumerable<Type> loadClassAttributes<TAttribute>() where TAttribute : System.Attribute
{
return from a in AppDomain.CurrentDomain.GetAssemblies()
from t in a.GetTypes()
where t.IsDefined(typeof(TAttribute), false)
select t;
}
这是 Mono Developer 显示的错误堆栈:
System.Linq.Enumerable+c__Iterator2B
3[[System.Reflection.Assembly, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Type, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[<>__AnonType1
2[[System.Reflection.Assembly,mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089],[System.Type,mscorlib,版本=4.0.0.0,文化=中性, PublicKeyToken=b77a5c561934e089]], TBL.Common.Dal, 版本=1.0.0.0, Culture=neutral, PublicKeyToken=null]].MoveNext ()
当我使用 XSP4 从 ASP MVC 运行相同的应用程序时,这是我的浏览器显示的屏幕截图
我从事 .NET 开发已经很多年了,但我真的是 Mono 的新手。我想知道其他人是否已经解决了这个问题以及如何解决它。
提前致谢。
编辑:添加日志输出
Mono:gc 占用了 31 usecs Mono:Assembly Loader 探测位置:'/usr/lib/mono/4.0/mscorlib.dll'。Mono: Image addref mscorlib[0x20fc8c0] -> /usr/lib/mono/4.0/mscorlib.dll[0x20fbb90]: 2 Mono: AOT 未能加载 AOT 模块 /usr/lib/mono/4.0/mscorlib.dll.so: /usr/lib/mono/4.0/mscorlib.dll.so:无法打开共享对象文件:没有这样的文件或目录
单声道:程序集加载器从位置加载程序集:'/usr/lib/mono/4.0/mscorlib.dll'。Mono:配置尝试解析:'/usr/lib/mono/4.0/mscorlib.dll.config'。Mono:配置尝试解析:'/etc/mono/assemblies/mscorlib/mscorlib.config'。Mono:程序集 mscorlib[0x20fc8c0] 添加到域 alogimex.test.exe,ref_count=1 Mono:配置尝试解析:'/etc/mono/config'。Mono:配置尝试解析:'/home/mleyzaola/.mono/config'。单声道:程序集加载器探测位置:'alogimex.test.exe'。单声道:图像地址 alogimex.test[0x21791f0] -> /home/mleyzaola/net/alogimex.mono/alogimex.mono.solution/alogimex.test/bin/Debug/alogimex.test.exe[0x20fa980]:3 单声道:汇编alogimex.test[0x21791f0] 添加到域 alogimex.test.exe, ref_count=1 Mono: