我正在使用 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));
}
}