我看到来自https://stackoverflow.com/questions/6262547/webclient-timeout-error 的帖子,它说默认超时为100秒。但我看到How to change the timeout on a .NET WebClient object的评论说
默认超时为100秒。虽然它似乎运行了30秒。 - 卡特12年12月13日16:39
在我的程序中,超时总是大约20秒,有人知道原因吗?
答案 0 :(得分:6)
我整理了一个最小的案例来测试WebClient类的默认超时。
我向我的本地PC发布了一个简单的网站,在收到请求后,等待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。