首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Mono中加载类型'System.Web.Http.WebHost.Routing.HttpRouteExceptionHandler‘

无法在Mono中加载类型'System.Web.Http.WebHost.Routing.HttpRouteExceptionHandler‘
EN

Stack Overflow用户
提问于 2014-06-13 16:56:37
回答 3查看 5.1K关注 0票数 3

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

代码语言:javascript
复制
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

我应该通过Nuget包括什么?目前,我引用了以下程序集:

代码语言:javascript
复制
- System (from GAC)
- System.Web (from GAC)
- System.Web.Http (from Nuget)
- System.Net.Http.Formatting (from Nuget)
- System.Web.Http.WebHost (from Nuget)
- Newtonsoft.Json (from Nuget)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-15 17:07:20

在Xamarin bugzilla中也有类似的bug。显然,为了使用最新的Web库,Mono aspnetweb堆栈需要首先更新:

bug.cgi?id=19314

票数 3
EN

Stack Overflow用户

发布于 2015-05-20 02:19:51

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

代码语言:javascript
复制
var httpHost = new System.Web.Http.WebHost.HttpControllerHandler(null);

瞧,编译失败了(这里的行间隔是我的):

代码语言:javascript
复制
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

所以,基本上-是的。破裂的System.Web.dll

票数 1
EN

Stack Overflow用户

发布于 2014-11-16 12:43:54

这可能是通过不使用config.MapHttpAttributeRoutes();,而是手动指定Web路由(例如config.Routes.MapHttpRoute.)来实现的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24210346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档