WebException не перехватывается при истечении времени ожидания соединения - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь поймать WebException с определенным статусом внутри IsTransient метод, но он никогда не ловит следующую ошибку:

System.Net.WebException: Unable to read data from the transport connection: Connection timed out. ---> System.IO.IOException: Unable to read data from the transport connection: Connection timed out. ---> System.Net.Sockets.SocketException: Connection timed out

А вот код:

private bool IsTransient(Exception ex)
    {
        var webException = ex as WebException;
        if (webException != null)
        {
            return new[]
            {
                WebExceptionStatus.ConnectionClosed,
                WebExceptionStatus.ConnectFailure,
                WebExceptionStatus.Timeout,
                WebExceptionStatus.RequestCanceled,
                WebExceptionStatus.ReceiveFailure
            }.Contains(webException.Status);
        }

        return false;
    }

Когда я проверяю его, отключив интернет-соединение на устройстве сканера, он возвращает значение true, но в рабочей среде, когда вебтайм-аут вызовов службы не работает.

...