Я пишу демона в C#, используя моно. Пока мне удалось реализовать свою логику и все, и проверить ее в консольной программе просто отлично. Я использую MonoDevelop 4.0.9 в Windows XP и компилирую его там, а затем перетаскиваю файлы в CentOS для тестирования. Я скомпилировал mono 3.0.12 на CentOS вручную, и я могу протестировать свою консольную программу там без проблем. Мой проект состоит из нескольких библиотек (DLL-файлов .net), которые содержат мою логику, и я использую те же файлы в двух исполняемых проектах; консоль и демон.Не удалось запустить демон mono-service2 - отсутствующий метод в «/usr/local/lib/mono/2.0/mscorlib.dll»
Хотя консоль работает плавно, демон выводит следующую ошибку при запуске:
Missing method System.Threading.Monitor::Enter(object,bool&) in assembly /usr/local/lib/mono/2.0/mscorlib.dll, referenced in assembly /usr/bin/wssd/Base.dll
это странно, так как я собрал все мои проекты против Mono/.Net 4.0
. Просто для акцента, оба запуска имеют один и тот же список файлов библиотеки, их единственная разница - это исполняемый файл: Console.exe
и WSSDaemon.exe
.
И вот как я называю их обоих:
$ mono ./Console.exe
$ mono-service2 -d:$WORK_DIR -l:$PIDFILE -m:$SERVICE_NAME -n:$SERVICE_NAME $DAEMON --debug > /tmp/wssd_log.txt
И wssd_log.txt где я нашел сообщение об ошибке сообщалось выше. Может ли кто-нибудь дать мне подсказку, в чем проблема?