2015-12-04 141 views
3

我看到帖子从https://stackoverflow.com/questions/6262547/webclient-timeout-error,它表示默认的超时时间是100秒。但我看到从How to change the timeout on a .NET WebClient object的评论说WebClient默认超时?

默认超时是100秒。虽然它似乎跑了30秒。 - - 卡特12年12月13日16:39

在我的程序超时总是约20秒,有人知道原因吗?

+0

HttpWebRequest超时为100秒,会话超时为20分钟。 – sansknwoledge

+2

对不起@sansknwoledge,这没有帮助。 – MichaelMao

+1

是的,那是唧唧歪歪的评论,你有没有检出msdn https://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.timeout(v=vs.110).aspx,特别是最后段, – sansknwoledge

回答

2

我把最小的情况放在一起来测试WebClient类的默认超时。

我发布了一个简单的网站给我的本地PC,它在收到请求后等待300秒(足以让WebClient超时),然后返回响应。

我写了一个简单的程序,使用Web客户端,使该网站的请求,并报告发生了什么:

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); 
    } 
} 

Web客户端确实超时了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。

+0

嗨,Jon,测试很好,但有人遇到同样的问题,所以我不能选择你的答案作为真正的答案 – MichaelMao

+0

你能发布最少的代码,所以我们可以看到你的程序与我的代码有什么不同吗?如果您可以发布您获得的异常的详细信息以及您的程序使用的.NET版本,也可能会有所帮助。 –

+0

给我几天的LOL – MichaelMao