Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法加载类型';System.Web.Http.WebHost.Routing.HttpRouteExceptionHandler';单声道_C#_Asp.net_Asp.net Web Api_Mono - Fatal编程技术网

C# 无法加载类型';System.Web.Http.WebHost.Routing.HttpRouteExceptionHandler';单声道

C# 无法加载类型';System.Web.Http.WebHost.Routing.HttpRouteExceptionHandler';单声道,c#,asp.net,asp.net-web-api,mono,C#,Asp.net,Asp.net Web Api,Mono,我尝试在Mono中使用最新的Asp.Net Web API,但错误如下所示: System.TypeLoadException Could not load type 'System.Web.Http.WebHost.Routing.HttpRouteExceptionHandler' from assembly 'System.Web.Http.WebHost, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

我尝试在Mono中使用最新的Asp.Net Web API,但错误如下所示:

System.TypeLoadException
Could not load type 'System.Web.Http.WebHost.Routing.HttpRouteExceptionHandler' from assembly 'System.Web.Http.WebHost, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

Description: HTTP 500.Error processing request.
Details: Non-web exception. Exception origin (name of application or object): System.Web.
Exception stack trace:
  at System.Web.Routing.UrlRoutingModule.PostResolveRequestCache (System.Web.HttpContextBase context) [0x00054] in /Volumes/build-root-ramdisk/mono-3.4.0/mcs/class/System.Web.Routing/System.Web.Routing/UrlRoutingModule.cs:128 
  at System.Web.Routing.UrlRoutingModule.PostResolveRequestCache (System.Object o, System.EventArgs e) [0x00007] in /Volumes/build-root-ramdisk/mono-3.4.0/mcs/class/System.Web.Routing/System.Web.Routing/UrlRoutingModule.cs:88 
  at System.Web.HttpApplication+<RunHooks>c__Iterator0.MoveNext () [0x001ba] in /Volumes/build-root-ramdisk/mono-3.4.0/mcs/class/System.Web/System.Web/HttpApplication.cs:1050 
  at System.Web.HttpApplication+<Pipeline>c__Iterator1.MoveNext () [0x0073b] in /Volumes/build-root-ramdisk/mono-3.4.0/mcs/class/System.Web/System.Web/HttpApplication.cs:1260 
  at System.Web.HttpApplication.Tick () [0x00000] in /Volumes/build-root-ramdisk/mono-3.4.0/mcs/class/System.Web/System.Web/HttpApplication.cs:932 

Version Information: 3.4.0 ((no/c3fc3ba Thu May 1 22:52:17 EDT 2014); ASP.NET Version: 4.0.30319.17020

在Xamarin bugzilla中也有类似的错误。显然,为了使用最新的Web API库,需要首先更新Mono aspnetwebstack:


不使用
config.MapHttpAttributeRoutes()就可以解决这个问题,但不是手动指定Web API路由(例如,
config.routes.MapHttpRoute

我想我添加答案太晚了,但我遇到了类似的问题,为了调试,我在源代码中添加了以下行:

var httpHost = new System.Web.Http.WebHost.HttpControllerHandler(null);
瞧,编译失败了(这里换行符是我的):

所以,基本上-是的。已损坏的System.Web.dll

可能重复的
var httpHost = new System.Web.Http.WebHost.HttpControllerHandler(null);
Global.asax.cs(116,56): error CS1684: Reference to type
 `System.Web.HttpTaskAsyncHandler' claims it is defined assembly 
 `System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a',
  but it could not be found