异步方法第二个异常挂起 - 在旧的.net中工作但在.net核心

时间:2017-05-01 17:20:23

标签: .net asynchronous core

我已尽可能多地将代码转换为从旧asp到.net核心的行。在旧的.net代码中它运行良好(在有两个异常的循环中,每个都被正确捕获)但是因为转换为.net核心它不起作用。第二个例外会挂起整个应用程序。

一段代码无效,我认为这是因为异步方法调用发生了死锁。

直接从以前的等价物中翻译代码,代码如下:

//loop at this level - many health checks to carry out
try
{
    bool result = await healthCheckable.GetHealthAsync();    
}
catch(Exception ex)
{

}

请注意,每次在此方案中执行运行状况检查代码时都会引发异常,因为服务已关闭。

循环第一次正确捕获异常,第二次,代码只是挂在健康服务检查上。

我尝试了.Wait(),我尝试了.Result;,我尝试了ConfigureAwait(false) - 一直到调用树。

此时我不知道下一步该尝试什么。

我很抱歉 - 我的代码太复杂了,无法创建一个可以重现问题的最小代码 - 但是从上面可以看出我应该检查的一系列内容吗?

0 个答案:

没有答案