Самостоятельное размещение приложения 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
и посмотрите, поможет ли вывод устранить проблему.