在ubuntu中使用mono时,Servicestack自托管应用程序System.TypeloadException

时间:2013-06-01 08:07:22

标签: ubuntu mono servicestack self-hosting

我正在尝试使用ubuntu中的mono运行我的自主服务堆栈控制台应用程序。

当我尝试在我的ubuntu服务器上使用mono运行时,我只是遇到了这个问题。该应用程序在Windows环境中运行良好。

当我尝试使用mono appname.exe启动我的应用时出现以下错误:

System.TypeLoadException: Could not load type 'Api.Database.MySqlConnection' from assembly 'Api, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
at (wrapper managed-to-native) System.Type:type_is_assignable_from   (System.Type,System.Type)
at System.Type.IsAssignableFrom (System.Type c) [0x00000] in <filename unknown>:0
at ServiceStack.ServiceHost.ServiceController.RegisterNService (ITypeFactory     serviceFactoryFn, System.Type serviceType) [0x00000] in <filename unknown>:0
at ServiceStack.ServiceHost.ServiceController.Register (ITypeFactory serviceFactoryFn)  [0x00000] in <filename unknown>:0
at ServiceStack.ServiceHost.ServiceManager.Init () [0x00000] in <filename unknown>:0
at ServiceStack.WebHost.Endpoints.Support.HttpListenerBase.Init () [0x00000] in <filename unknown>:0
at UniBooks_Api_Runner.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

Mono在我这个盒子上使用其他应用程序时效果很好,所以我不太自信它的单声道问题 - 虽然可能与某些服务堆栈的单声道冲突?

顶部错误引用的特定类使用以下程序集:

using System;
using System.Data;
using MySql.Data.MySqlClient;

该类还实现了System.Data.IDbConnection,我也使用.net framework 4.5

我想通过阅读this answer和关注this tutorial来调整linux / ubuntu的控制台应用程序,我正在引用Mono.Unix程序集,所以我不认为那里是我将应用程序设置为自托管的方式的问题。

之前是否有人遇到过此问题或此类问题?你能帮我理解这个问题,也许还可以在哪里寻找解决方案。

由于

1 个答案:

答案 0 :(得分:3)

尝试设置MONO_LOG_LEVEL和可选MONO_LOG_MASK,例如: MONO_LOG_LEVEL=debug MONO_LOG_MASK=asm mono --debug appname.exe 并查看输出是否有助于解决问题。