2015-01-05 52 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包到最新版本

相關問題