我使用HttpClient执行对远程服务器的REST调用:
using (var response = httpClient.PostAsync(Url, content).Result)
{
// code
}
它工作正常,但有时会返回奇怪的错误:
2014-07-28 12:04:40,098(268795336)[114]错误 - System.AggregateException:发生一个或多个错误。 ---> System.Net.Http.HttpRequestException:发送时发生错误 请求。 ---> System.Net.WebException:底层连接 已关闭:发送时发生意外错误。 ---> System.ArgumentOutOfRangeException:Count不能小于零。 参数名称:count 在System.Net.TlsStream.EndWrite(IAsyncResult asyncResult) 在System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar)
问题可能是什么原因?
答案 0 :(得分:1)
我猜偶尔的问题可能是由死锁造成的。当我们使用异步方法时,出于上述原因,最好使用await
而不是Task.Result
。请看一下这个讨论异步编程最佳实践的link。