2012-03-10 16 views
6

私はMono 2.10.8.1でUbuntu 10.04で動作する新しいASP.NET Web APIベータ版(VS 2010デフォルトWeb APIプロジェクト)を入手しようとしています。残念ながら私はこれまでのすべての試みで悲惨に失敗しました。ASP.NET Web API(ベータ版)は最新のMono(安定版)で動作しますか?

System.TypeLoadException: Could not load type 'RestTest.Controllers.ValuesController' from assembly 'RestTest, 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 System.Web.Mvc.AreaRegistration.IsAreaRegistrationType (System.Type type) [0x00000] in <filename unknown>:0 
    at System.Web.Mvc.TypeCacheUtil+<>c__DisplayClass1.<FilterTypesInAssemblies>b__0 (System.Type type) [0x00000] in <filename unknown>:0 
    at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator35`1[System.Type].MoveNext() [0x00000] in <filename unknown>:0 
    at System.Collections.Generic.List`1[System.Type].AddEnumerable (IEnumerable`1 enumerable) [0x00000] in <filename unknown>:0 
    at System.Collections.Generic.List`1[System.Type]..ctor (IEnumerable`1 collection) [0x00000] in <filename unknown>:0 
    at System.Linq.Enumerable.ToList[Type] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 
    at System.Web.Mvc.TypeCacheUtil.GetFilteredTypesFromAssemblies (System.String cacheName, System.Predicate`1 predicate, IBuildManager buildManager) [0x00000] in <filename unknown>:0 
    at System.Web.Mvc.AreaRegistration.RegisterAllAreas (System.Web.Routing.RouteCollection routes, IBuildManager buildManager, System.Object state) [0x00000] in <filename unknown>:0 
    at System.Web.Mvc.AreaRegistration.RegisterAllAreas (System.Object state) [0x00000] in <filename unknown>:0 
    at System.Web.Mvc.AreaRegistration.RegisterAllAreas() [0x00000] in <filename unknown>:0 
    at RestTest.WebApiApplication.Application_Start() [0x00000] in <filename unknown>:0 
    at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&) 
    at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 

実際の "ValuesController"クラスに問題はないとは思いません。基本的に空のクラスです。代わりにNuGetパッケージ "AspNetWebApi.Core.4.0.20126.16343"(System.Web.Http.dll)と共に配布される "ApiController"という基本クラスに問題があるようです。私は "MoMA"(Mono Migration Analyzer)ですべての新しいライブラリをチェックしています。その結果、かなりの方法がまだ実装されていないようです。

私の質問は次のとおりです。ASP.NET Web APIをMonoと一緒に使用できることを誰かが知っていますか?とにかく(MonoではなくMicrosoftのライブラリを使用して)実行する方法はありますか?

補遺:上記の設定でモノに定期的MVC4プロジェクトを実行しようとしたものに

クイックノート。 1つのメソッド、つまりAllowOnlyFipsAlgorithms()がまだ実装されていないため、私はわずかな問題に遭遇しました。これは、 "System.Web.Optimization"の "CreateHashAlgorithm"によって呼び出され、プロジェクトを実行するために、このライブラリへの参照をすべて削除する必要がありました。はい、あなたは、今のところ新しくてきれいなCSS/Javascriptのバンドル機能がなくてはいけませんが、少なくともサイトを稼働させる必要があります。

+0

その間、私は最新の[Mono 2.11.0](http://www.go-mono.com/mono-downloads/download.html)を使用して試し、ソースから直接ランタイムとサーバーを構築しました。しかし、私は起動時にいくつかの例外が発生したため、Web APIに基づいたサービスだけでなく、Webサイトを実行することもできませんでした(2.10.8.1で作業)。 – UnclePaul

答えて

1

これは可能ですが、痛い可能性があります。モノとウィンドウの両方で動作するservicestack.netを考えてみましょう。

+2

以前はServiceStackについて聞いたことがありません。それは印象的に速く、大きな機能性が付属していると確かにそれをチェックアウトする必要がありますいくつかの点で。全体的には、新鮮なものを始め、自由にライブラリを選ぶことができる他の人のための本当に良い選択肢のようです。残念ながら私はできません。 – UnclePaul

+0

@UnclePaulライブラリの選択について私はあなたの問題についてもっと同意できませんでした。メンテナンス(のみ)が第一の目標であるレガシープロジェクトでは、DALを変更することは非常に重要です。 –

+0

サービススタックはモノラルに対して非常にうまく動作します。私たちは実稼働環境でこれを使用し、モノラルのasp mvcとは異なり、非常に安定しています – sungiant

関連する問題