mono を使用して C# でデーモンを作成しています。これまでのところ、ロジックとすべてを実装し、コンソール プログラムで問題なくテストすることができました。私は Windows XP で MonoDevelop 4.0.9 を使用しており、そこでコンパイルしてから、ファイルを CentOS に移動してテストします。CentOS で mono 3.0.12 を手動でコンパイルしたので、問題なくコンソール プログラムをテストできます。私のプロジェクトは、ロジックを含む複数のライブラリ (.net dll ファイル) で構成されており、2 つの実行可能プロジェクトで同じファイルを使用しています。コンソールとデーモン。
コンソールはスムーズに実行されますが、デーモンは開始時に次のエラーを出力します。
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 は、上記で報告されたエラー メッセージを見つけた場所です。誰が私に問題が何であるかについてのヒントを教えてもらえますか?