WebClient wc = new WebClient();
wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted);
wc.OpenReadAsync(new Uri(url, UriKind.RelativeOrAbsolute));
void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
if (e.Error != null || e.Cancelled)
{
//randomly, this code gets hit and
//there is no inner exception - just says "an exception occurred during a webclient request"
在代碼中所描述的錯誤發生隨機和如果相同的Web客戶端請求之後,它工作制成。或者,如果有新的資源請求發出,那麼現在出現錯誤的舊的請求會在新的請求之前發出......Web客戶端錯誤(隨機的和非常非常討厭)
這很奇怪,這裏的任何大師都有一個線索,爲什麼它可能是?
編輯:信息錯誤
System.Net.WebException:一個異常 一個Web客戶端請求期間發生。 ---> System.Exception ---> System.Exception:錯誤HRESULT E_FAIL 已從調用COM組件返回。在 System.Net.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)at System.Net.BrowserHttpWebRequest。 <> c_ DisplayClass5.b _4(Object sendState)at System.Net.AsyncHelper。 <> C_ DisplayClass2.b _0(對象sendState)---內 異常堆棧跟蹤的末尾在 System.Net.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod,對象狀態)在 System.Net.BrowserHttpWebRequest .EndGetResponse(IAsyncResult的 asyncResult)在 System.Net.WebClient.GetWebResponse(WebRequest的 請求,IAsyncResult的結果)在 System.Net.WebClient.OpenReadAsyncCallback(IAsyncResult的 結果)---內部異常 堆棧跟蹤結束 - -
該URL是一個簡單的字符串,其計數不超過200.
什麼是異常的類型?您是否嘗試過使用Wireshark來查看網絡級別發生了什麼? – 2010-11-12 07:13:11
@Jon Skeet:例外=「在webclient請求期間發生異常」,這就是我所能得到的。我沒有使用Wireshark,但現在馬上安裝它。然而,使用fiddler我甚至在看到這個錯誤時看不到HTTP請求;然而,當我發出另一個WebClient請求時 - 我得到錯誤的地方出現在fiddler(請求類型= GET,HTTP/1.1)中,並且我提出的新請求也出現在這之後....所以很奇怪。 – VoodooChild 2010-11-12 08:39:19
(只是添加到我的評論):在收到錯誤,並沒有看到它的提琴手會議 - 如果我再打一個電話,現在看到兩個請求在提琴手中,如果我看看請求的細節,當我出現錯誤,我發現'ClientBeginRequest'時間戳是在我發出第二個請求時的較新時間。所以它幾乎就像webClient請求被卡在內存或緩衝區的某個地方,並且在下一個請求中強制它執行。另外,我安裝了WireShark,但自從我以後,我一直無法重新創建這個錯誤 - 但我會在這裏更新一次。 – VoodooChild 2010-11-12 12:45:09