ASP.NET Web API(beta)是否运行最新的Mono(稳定版)?

时间:2012-03-10 17:32:50

标签: .net asp.net-mvc-4 mono asp.net-web-api

我正在尝试使用Mono 2.10.8.1在Ubuntu 10.04上运行新的ASP.NET Web API beta(VS 2010默认Web 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”类没有任何问题。它基本上是一个空类。相反,似乎有一个名为“ApiController”的基类有问题,它与NuGet包“AspNetWebApi.Core.4.0.20126.16343”(System.Web.Http.dll)一起发布。我用“MoMA”(Mono Migration Analyzer)检查所有新库,结果是很多方法似乎还没有实现。

所以我的问题是:有谁知道ASP.NET Web API何时可以与Mono一起使用?有没有办法让它运行(也许通过使用Microsoft库而不是Mono)?

附录:

快速注意那些尝试使用上述配置在mono上运行常规MVC4项目的人。我遇到了一些小问题,因为还没有实现一个方法 - 即AllowOnlyFipsAlgorithms()。它被“CreateHashAlgorithm”称为“System.Web.Optimization”中的某处,为了让我的项目运行,我必须删除对该库的所有引用。是的,你现在必须没有所有新的和整洁的CSS / Javascript捆绑功能,但至少你得到了你的网站。

1 个答案:

答案 0 :(得分:1)

这是可能的,但可能是一种痛苦。考虑在单声道和Windows上运行的servicestack.net