Тайм-аут по умолчанию для WebClient?

Я вижу сообщение из qaru.site/info/23786/..., он говорит, что время ожидания по умолчанию составляет 100 секунд. Но я вижу комментарий от Как изменить таймаут в объекте .NET WebClient говорит

Время ожидания по умолчанию - 100 секунд. Хотя кажется, что он работает 30 секунд. - Картер 13 дек 12 в 16:39

В моей программе тайм-аут всегда около 20 секунд, кто-нибудь знает причину?

Ответ 1

Я собрал минимальный случай, чтобы проверить тайм-аут по умолчанию для класса WebClient.

Я опубликовал простой веб-сайт на своем локальном ПК, который после получения запроса ждет 300 секунд (достаточно долго, чтобы время ожидания WebClient), а затем возвращает ответ.

Я написал простую программу, которая использует WebClient для запроса на этот сайт и сообщает, что происходит:

void Main()
{
    Console.WriteLine("Starting request at " + DateTime.Now);
    WebClient client = new WebClient();
    try
    {
        string response = client.DownloadString("http://slowsite.local/");
        Console.WriteLine("Response returned at " + DateTime.Now);
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.GetType() + " " + ex.Message + " at " + DateTime.Now);
    }
}

WebClient сделал тайм-аут после 100 секунд. Программа произвела этот вывод:

Starting request at 8/1/2017 9:31:11 AM
System.Net.WebException The request was aborted: The operation has timed out. at 8/1/2017 9:32:51 AM

Клиентская тестовая программа предназначена для .NET Framework 4.6.