2015-12-04 179 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