Работает ли ASP.NET Web API (бета) с последней версией Mono (стабильной)? - PullRequest
6 голосов
/ 10 марта 2012

Я пытаюсь запустить новую бета-версию ASP.NET Web API (проект Web API по умолчанию для VS 2010) в Ubuntu 10.04 с Mono 2.10.8.1.К сожалению, до сих пор я терпел неудачу во всех своих попытках.Самое «значимое» исключение, которое я получил, это следующее:

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 что-то не так.Это в основном пустой класс.Вместо этого, похоже, существует проблема с базовым классом под названием «ApiController», который распространяется с пакетом NuGet «AspNetWebApi.Core.4.0.20126.16343» (System.Web.Http.dll).Я проверяю все новые библиотеки с помощью «MoMA» (Mono Migration Analyzer), и в результате получается, что многие методы еще не реализованы.

Итак, мои вопросы: кто-нибудь знает, когда веб-API ASP.NET можно использовать вместе с Mono?Есть ли способ запустить его в любом случае (возможно, с помощью библиотеки Microsoft вместо Mono)?

Приложение:

Краткое примечание для тех, кто пытается запустить обычный проект MVC4 на моно с указанной выше конфигурацией.Я столкнулся с небольшими проблемами, потому что один метод - а именно AllowOnlyFipsAlgorithms () - еще не был реализован.Он вызывается где-то в «System.Web.Optimization» командой «CreateHashAlgorithm», и чтобы запустить мой проект, мне пришлось удалить все ссылки на эту библиотеку.Да, вам пока не нужно использовать все новые и удобные возможности связывания CSS / Javascript, но, по крайней мере, ваш сайт заработает.

1 Ответ

1 голос
/ 28 марта 2012

Это возможно, но может быть боль.Рассмотрим servicestack.net , который работает как в моно, так и в windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...