HttpClient中的DNS解析失败会抛出Unhandled AggregateException

时间:2014-02-25 19:59:52

标签: c# dotnet-httpclient

我有一个使用HttpClient的.NET 4客户端应用程序。当_tokenServiceUrl无法通过DNS正确解析时(例如:当VPN上升或下降或移动设备在死点中失去连接时发生网络更改更改),则会抛出AggregateException。我试图抓住那个例外,但不能。

    try
    {
        var response = _client.GetAsync(_tokenServiceUrl).Result;

        response.EnsureSuccessStatusCode();
        var token = response.Content.ReadAsAsync<string>().Result;
        return token;

    }
    catch (AggregateException exception)
    {
        Disconnected(exception);
        return string.Empty;
    }

我已经添加了一个ContinueWith,以便捕获异常并处理它,但我永远不会回来。在这样的例外情况下,我该怎样做才能完成任务?

1 个答案:

答案 0 :(得分:1)

您应该能够捕获该Aggregate异常。

确保在测试时没有运行Fiddler或其他代理。如果这样做,则GetAsync期间不会发生异常。您将获得502响应,然后EnsureSuccessStatusCode将抛出HttpRequestException。