尝试通过方法“HttpConfiguration..ctor(HttpRouteCollection)”访问方法“HttpConfiguration.DefaultFormatters()”失败。

4
我有一个Web API,安装了版本为5.1.2的Microsoft.AspNet.WebApi.Client包。
我正在尝试从一个也安装了相同版本包的ASP.NET MVC应用程序中访问API。
但是,在Web API项目的Global.asax文件中,以下行会导致以下异常:
WebApiConfig.Register(GlobalConfiguration.Configuration);

尝试使用“System.Web.Http.HttpConfiguration..ctor(System.Web.Http.HttpRouteCollection)”方法访问“System.Web.Http.HttpConfiguration.DefaultFormatters()”方法失败。

根据最近的SO问题,通过从Nuget更新库,可以解决相同的错误。这可能是MVC和Web API包之间的某种(不)兼容性问题。值得一试,我想... - djikay
我也遇到了这样的错误,你有解决方法吗? - Archana
4个回答

2
在我的情况下,当我安装了 Microsoft.AspNet.WebApi.Core 时,问题得到了解决。因此,三个库应该同时存在并保持协调一致(卸载/安装)Microsoft.AspNet.WebApi.ClientMicrosoft.AspNet.WebApi.CoreNewtonsoft.json

2

在我的情况下,问题出现在Microsoft.AspNet.WebApi.ClientMicrosoft.AspNet.WebApi.Core版本不一致上,我尝试将它们都更新到相同的版本,结果问题得到解决。


2
我发现当您有多个指向不同.NET版本的项目时,会出现此错误。
例如,如果您有一个目标为.NET 4.5的Web API项目和一个目标为.NET 4.5.3的单元测试项目,则似乎默认设置意味着nuget可能会在某一天静默更新.NET 4.5项目引用到不兼容的版本,并导致您的Web API项目因晦涩的“尝试通过方法 'HttpConfiguration..ctor (HttpRouteCollection)' 访问方法 'HttpConfiguration.DefaultFormatters()' 失败”的错误而失败。
为避免错误,请将新项目上的较高.NET版本降低以与Web API项目匹配-对于此示例,请右键单击单元测试项目,单击属性,然后将目标框架更改为.NET Framework 4.5。

0

对于上面的答案,在我的情况下也是一样的,只要更新或重新安装软件包就可以正常工作。

Microsoft.AspNet.WebApi.Client
Microsoft.AspNet.WebApi.Core

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接