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.Net.WebException' の初回例外が System.Windows.dll で発生しまし
た リモート サーバーがエラーを返しました: 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));
}
}