2016-04-19 10 views
0

私は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にあるように見えるので少し混乱しています。

必要であれば、私はより多くの情報を与えて喜んで:)

答えて

0

私は例外は問題が何であるかを告げていると思う - 使用しようとしている方法は、モノラルの実装に存在していないように見えます。 .NETアセンブリでは、正式に推奨されていない機能を提供しているか、モノ実装のギャップが存在する可能性があります。

代わりにモノラルコンパイラを使用してソースをコンパイルしようとしましたか?ライブラリは理論上は移植可能なはずですが、実際には必ずしもそうではありません。