WebClient默认超时?

时间:2015-12-04 07:45:32

标签: c# asp.net

我看到来自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秒,有人知道原因吗?

1 个答案:

答案 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。