0

我正在使用 HttpWebRequest 传输文件。工作流程如下所示:

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

在 WriteStreamToCallback 中:

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

将字节写入 requestStream,然后调用:

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

ReadHttpResponseCallback 发生异常:

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

例外是:

System.Windows.dll 中出现“System.Net.WebException”类型的第一次机会异常
远程服务器返回错误:NotFound。

应用程序可以从中恢复吗?可能是什么原因?它是间歇性的;这是时间问题吗?
感谢您的任何见解...

更新

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

1 回答 1

0

可能在这里找到了解决方案:http: //fearthecowboy.com/2011/09/02/fixing-webrequests-desire-to-throw-exceptions-instead-of-returning-status/

于 2013-03-21T18:42:02.310 回答