2015-01-05 137 views
4

我做了一些项目重组后,我得到以下错误,我不能确定问题出在哪里。尝试的方法... HttpConfiguration ...访问方法... DefaultFormatters ...失败

Server Error in '/' Application. 
Attempt by method 'System.Web.Http.HttpConfiguration..ctor(System.Web.Http.HttpRouteCollection)' to access method 'System.Web.Http.HttpConfiguration.DefaultFormatters()' failed. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.MethodAccessException: Attempt by method 'System.Web.Http.HttpConfiguration..ctor(System.Web.Http.HttpRouteCollection)' to access method 'System.Web.Http.HttpConfiguration.DefaultFormatters()' failed. 

Source Error: 


Line 15:   routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
Line 16: 
Line 17:   routes.MapHttpRoute(
Line 18:    name: "DefaultApi", 
Line 19:    routeTemplate: "api/{controller}/{action}", 


Source File: c:\Dev\MyProject\Branches\Phase.2.3-Sprint 16\Client\ManagementSite\App_Start\RouteConfig.cs Line: 17 

Stack Trace: 


[MethodAccessException: Attempt by method 'System.Web.Http.HttpConfiguration..ctor(System.Web.Http.HttpRouteCollection)' to access method 'System.Web.Http.HttpConfiguration.DefaultFormatters()' failed.] 
    System.Web.Http.HttpConfiguration..ctor(HttpRouteCollection routes) +53 
    System.Web.Http.GlobalConfiguration.<.cctor>b__0() +54 
    System.Lazy`1.CreateValue() +416 
    System.Lazy`1.LazyInitValue() +152 
    System.Lazy`1.get_Value() +75 
    System.Web.Http.GlobalConfiguration.get_Configuration() +27 
    System.Web.Http.RouteCollectionExtensions.MapHttpRoute(RouteCollection routes, String name, String routeTemplate, Object defaults, Object constraints, HttpMessageHandler handler) +67 
    System.Web.Http.RouteCollectionExtensions.MapHttpRoute(RouteCollection routes, String name, String routeTemplate, Object defaults) +18 
    MyProjectManagementSite.RouteConfig.RegisterRoutes(RouteCollection routes) in c:\Dev\MyProject\Branches\Phase.2.3-Sprint 16\Client\ManagementSite\App_Start\RouteConfig.cs:17 
    MyProjectManagementSite.MvcApplication.Application_Start() in c:\Dev\MyProject\Branches\Phase.2.3-Sprint 16\Client\ManagementSite\Global.asax.cs:26 

[HttpException (0x80004005): Attempt by method 'System.Web.Http.HttpConfiguration..ctor(System.Web.Http.HttpRouteCollection)' to access method 'System.Web.Http.HttpConfiguration.DefaultFormatters()' failed.] 
    System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +9905705 
    System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +118 
    System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +172 
    System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336 
    System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296 

[HttpException (0x80004005): Attempt by method 'System.Web.Http.HttpConfiguration..ctor(System.Web.Http.HttpRouteCollection)' to access method 'System.Web.Http.HttpConfiguration.DefaultFormatters()' failed.] 
    System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9885060 
    System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101 
    System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254 


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34009 

我绑了所有的项目,全线(而不是6.0.7这是最新的).NET 4.5,并设置Newtonsoft Json.Net到6.0.1。当我构建我的Web项目时,我收到一条警告:“在同一个相关程序集的不同版本之间发现冲突”,如果我运行一些借用代码来列出这些潜在的冲突,那么Newtonsoft的版本4.5和6.0之间可能会有冲突:

Possible conflicts for System.Net.Http: 
System.Net.Http.Formatting references System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
System.ServiceModel  references System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
System.Web.Http   references System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
System.Web.Http.WebHost references System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
MyProjectManagementSite references System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
MyProjectManagementSite references System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 

Possible conflicts for Newtonsoft.Json: 
System.Net.Http.Formatting references Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed 
System.Web.Http   references Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed 
MyProject.Base   references Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed 
MyProjectManagementSite references Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed 

以上是否显示可能的原因,以及如何解决?

+0

[接入固定方法'System.Web.Http.HttpConfiguration.DefaultFormatters()'失败](http://stackoverflow.com/questions/23433875/access-method-system-web-http-httpconfiguration-defaultformatters-failed)?还要将您的本地版本与源代码管理中的工作版本进行比较,以查看参考更改。 – CodeCaster

+0

是的,我在发布之前检查了基于StackOverflow提示的文章 - WebApi已经安装并且未更改。重新安装并且没有任何修复。比较两个csproj文件(当前版本与早期版本的源代码版本),并且看不到任何我个人意识到的问题。 – Savage

回答

6

卸载的WebAPI,再重新安装(通过的NuGet)和问题走了

+0

是的!我使用install-package ... -V 5.2.2更新了软件包版本后,发生了这种情况,卸载并重新安装webapi软件包后,最终都出现了 –

+2

,这很可能是版本控制问题。当我尝试通过Web API客户端版本5.x访问Web API版本4.0时遇到了同样的问题 –

1

最有可能这是一个版本的问题,我有同样的问题,并通过更新Microsoft.AspNet.WebApi.WebHost包到最新版本

相关问题