Mono 2.10.8.1을 사용하여 Ubuntu 10.04에서 실행되는 새로운 ASP.NET 웹 API 베타 (VS 2010 기본 웹 API 프로젝트)를 얻으려고합니다. 불행히도 나는 지금까지 모든 시도에서 비참하게 실패했다. 내가 가진 가장 "의미"예외는 다음과 같습니다 :ASP.NET 웹 API (베타)가 최신 모노 (안정)로 실행됩니까?
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 웹 API를 Mono와 함께 사용할 수있는 경우를 알고 있습니까? 어쨌든 (아마 Mono 대신 Microsoft libs를 사용하여) 실행할 수있는 방법이 있습니까?
부록 : 위의 구성으로 모노에 정기적 MVC4 프로젝트를 실행하려고들에게
빠른 노트. 한 가지 방법, 즉 AllowOnlyFipsAlgorithms()가 아직 구현되지 않았기 때문에 약간의 문제가 발생했습니다. 그것은 "System.Web.Optimization"에서 "CreateHashAlgorithm"에 의해 호출되었고 프로젝트를 실행하기 위해이 라이브러리에 대한 모든 참조를 제거해야했습니다. 예, 지금 새롭고 깔끔한 CSS/Javascript 번들링 기능을 모두 사용하지 않아도되지만 적어도 사이트를 업그레이드해야합니다.
그동안 최신 [Mono 2.11.0] (http://www.go-mono.com/mono-downloads/download.html)을 사용해 보았고 소스에서 직접 런타임 및 서버를 빌드했습니다. 그러나 시작 도중에 몇 가지 예외가 발생하여 웹 API를 기반으로하는 서비스는 물론 웹 사이트를 실행할 수도 (2.10.8.1로 작업) 할 수도 없었습니다. – UnclePaul