私はVS2015でビルドしてウィンドウでコンパイルしたWeb APIサイトを持っています。このサイトはいくつかのライブラリを使用し、ターゲットプラットフォームは4.5.2です。 私はコンパイルされたアセンブリを取得し、mono-complete debからmono 4.2.3ランタイムを持つubuntu Linuxの信頼できるボックスにドロップします。 サイト自体は、OWIN自己ホストパターンを使用して実行されています。ここでは、スタートアップクラスとそれをロードして実行する別個のexeプロジェクトで構築されたサーバープロジェクトがあります。私はその後、unbuntuボックスに私のプロジェクトを実行しようと、私は次の出力を得る:Web Api 2 with Mono 4.2.3
はUnknown errno: Protocol error
Unknown errno: Protocol error
Unknown errno: Protocol error
Unknown errno: Protocol error
Unhandled Exception:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeInitializationException: The type initializer for 'System.Net.Http.Formatting.MediaTypeConstants' threw an exception. ---> System.InvalidProgramException: Invalid IL code in System.Net.Http.Headers.MediaTypeHeaderValue:.ctor (string): method body is empty.
サービスのbinディレクトリがSystem.Net.HttpとSystem.Net.Http.FormattingのDLLが含まれています。私はモノ自身がこれらのdllのGAC版を持っているのを見ることができますので、プロジェクトがmono自身のGACを使用することに戻ってくることを期待してbinから削除しましたが、プロジェクトが5.2.3.0 DLLは4.0.0.0ではありません。私はvs2015をチェックして、その参照が4.0.0.0にあるように見えるので少し混乱しています。
必要であれば、私はより多くの情報を与えて喜んで:)