Самостоятельное размещение приложения Servicetack System.TypeloadException при использовании моно в Ubuntu

Я пытаюсь запустить собственное консольное приложение servicestack, используя mono в Ubuntu.

Я только сталкиваюсь с этой проблемой, когда пытаюсь запустить моно на моем сервере Ubuntu. Приложение отлично работает в среде 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

Я хотел бы отметить, что я адаптировал консольное приложение для Linux/ Ubuntu, прочитав этот ответ и следуя этому руководству, и я ссылаюсь на Mono.Unix Сборка, так что я не думаю, что есть проблема с тем, как я настроил приложение для самостоятельного размещения.

Кто-нибудь сталкивался с этой проблемой или с такой проблемой раньше? Можете ли вы помочь мне понять проблему и, возможно, где искать решение?

Спасибо

1 ответ

Решение

Попробуйте установить MONO_LOG_LEVEL и опционально MONO_LOG_MASK такие как:MONO_LOG_LEVEL=debug MONO_LOG_MASK=asm mono --debug appname.exeи посмотрите, поможет ли вывод устранить проблему.

Другие вопросы по тегам