2013-03-20 92 views
0

我正在使用HttpWebRequest傳輸文件。工作流程是這樣的:在回調中嘗試獲取WebResponse的例外

webRequest.BeginGetRequestStream(new AsyncCallback(WriteToStreamCallback), webRequest); 

在WriteStreamToCallback:

HttpWebRequest webRequest = (HttpWebRequest)asynchronousResult.AsyncState; 
Stream requestStream = webRequest.EndGetRequestStream(asynchronousResult); 

寫字節到requestStream,然後調用:在ReadHttpResponseCallback發生

webRequest.BeginGetResponse(new AsyncCallback(ReadHttpResponseCallback), webRequest); 

例外:

HttpWebRequest webRequest = (HttpWebRequest)asynchronousResult.AsyncState; 
// The next line throws a WebException 
HttpWebResponse webResponse = (HttpWebResponse)webRequest.EndGetResponse(asynchronousResult); 

唯一的例外是:

A first chance exception of type 'System.Net.WebException' occurred in System.Windows.dll
The remote server returned an error: NotFound.

可以在該應用從此一蹶不振?可能是什麼原因?它是間歇性的;這是一個時間問題?
感謝任何見解...

UPDATE

private void ReadHttpResponseCallback(IAsyncResult asynchronousResult) 
{ 
    try 
    { 
     HttpWebRequest webRequest = (HttpWebRequest) asynchronousResult.AsyncState; 
     // The next line throws the exception 
     HttpWebResponse webResponse = (HttpWebResponse) webRequest.EndGetResponse(asynchronousResult); 

     /* SNIP */ 
    } 
    catch (WebException webEx) 
    { 
     System.Diagnostics.Debug.WriteLine(string.Format("  {0} {1}", "ReadHttpResponseCallback - WebException", webEx.Message)); 
    } 
    catch (Exception xx) 
    { 
     System.Diagnostics.Debug.WriteLine(string.Format("{0} {1}", "ReadHttpResponseCallback", xx.Message)); 
    } 
} 
+0

文件沒有找到。 – leppie 2013-03-20 18:57:45

+0

leppie:找不到地方?由於我正在寫一個流來上傳文件,因爲我獲得了該流而導致流無效了嗎?這不可能是指本地文件,當然... – Number8 2013-03-20 19:13:15

+0

哦,對不起,我錯過了這是一個第一次機會例外的事實。這意味着它正在某處被處理。它可能是內部處理的異常,或者您可能會處理它。 – leppie 2013-03-20 19:16:41

回答