Ответ 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.