未找到PostAsJsonAsync方法:' Void Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)'

时间:2015-07-24 10:38:02

标签: c# serialization json.net httpclient formatter

我们正在使用HttpClient扩展从visual studio 2013上的Web应用程序调用Web服务。有时当我们调用PostAsJsonAsync方法时,我们会收到此错误"找不到方法:' Void Newtonsoft.Json。 Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(布尔型)'"我们的代码如下:

using (var client = new HttpClient())
{
    client.SetAuthenticationHeader();
    client.SetServiceBaseAddress();

    var response = await client.PostAsJsonAsync("publishfile/", publishFileDto); 

    if (response.IsSuccessStatusCode)
    {
        RedirectToAction("Certificates");
    }

    ModelState.AddModelError("File", "Failed to upload file");
}

我们尝试过很多在stackoverflow上提供的解决方案,但没有一个能够工作。我们已将所有依赖库升级到最新版本,尤其是Microsoft.AspNet.WebApi.Client和Newtonsoft.Json,我们也尝试降级,但仍然没有运气。我还在资源管理器中打开了packages文件夹,并确保没有库有多个未使用的版本,例如,Newtosoft.Json有许多版本从6.0.1到7.0.1。

我们尝试了这些提议的解决方案:

Method not found 'Void Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)

Method not found: 'Void Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)'

HttpClient not supporting PostAsJsonAsync method C#

我也检查了这个:

Method not found: 'Void Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)' (webapi and PCL)

没有多大帮助。

以下是堆栈跟踪信息的一部分。

[MissingMethodException: Method not found: 'Void Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)'.]
System.Net.Http.Formatting.JsonContractResolver..ctor(MediaTypeFormatter formatter) +0 
System.Net.Http.Formatting.BaseJsonMediaTypeFormatter..ctor() +84 
System.Net.Http.Formatting.JsonMediaTypeFormatter..ctor() +113
System.Net.Http.HttpClientExtensions.PostAsJsonAsync(HttpClient client, String requestUri, T value, CancellationToken cancellationToken) +61
System.Net.Http.HttpClientExtensions.PostAsJsonAsync(HttpClient client, String requestUri, T value) +132 

奇怪的是,有时,异常不会被抛出,对象被序列化并发送到Web服务,一切正常。稍后当我们再次执行相同的代码时,我们会得到异常。

我们已经达到了我们想要考虑使用不同的库来进行web api调用的程度。

0 个答案:

没有答案