我收到了AggregateException,而client.PostAsyc调用时甚至设置了超时。
这是我的代码。
data %>%
group_by(let ) %>%
do(mutate(., mean.by.letter = mean(.$x)))
有人可以建议如何管理吗?有时我得到AggregateException。
我已经提到了以下链接,但我仍然收到错误。事件我设置了超时。
How can I tell when HttpClient has timed out?
AggregateException is throwing while waiting for PostAsJsonAsync
Whats the difference between HttpClient.Timeout and using the WebRequestHandler timeout properties?
答案 0 :(得分:1)
将async
添加到您的方法定义中,并使用await
代替.Result
。
使用.Result
阻止线程,您将失去使用Async方法的所有好处。
使用await
“不仅会解包数据,还会解释异常(因此您将获得实际异常而不是AggregateException)。
var result = await client.PostAsync(session.Values["URL"] + "/abcd/", contents);
...
string data = await result.Content.ReadAsStringAsync();
这有点长,但这是关于使用async / await的好视频:https://channel9.msdn.com/Events/aspConf/aspConf/Async-in-ASP-NET
值得关注。
答案 1 :(得分:0)
AggregateException是执行异步任务时遇到的所有异常的集合。
如果您只想检查遇到的异常而不进行任何处理,您可以执行以下操作:
catch (AggregateException ae)
{
// This will just throw the first exception, which might not explain everything/show the entire trace.
throw ae.InnerException
}
或
catch (AggregateException ae)
{
// This will flatten the entire exception stack to a string.
throw new Exception(ae.ToString())
}