WebException не перехватывается при истечении времени ожидания соединения
Я пытаюсь поймать 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, но в производственной среде, когда тайм-аут вызова веб-службы не работает.