0

私のアプリケーションはファイルのダウンロードに使用されます。ファイルがダウンロードされた後、それらのファイルのサイズが検証のためにXMLファイル内の要素と比較されます。XMLファイルには、「size」属性を持つ各ファイルの要素があります。これは、ダウンロードされたファイルの想定サイズです。ファイルは通常のイーサネット接続で正常に検証されます。低速のワイヤレス接続が使用されている場合、ファイルは常に検証に失敗します。つまり、ダウンロードされたファイルは、想定されているサイズではありません。WebClient DownloadFileAsync()メソッドが低速または不安定なネットワークにファイルを正常にダウンロードできないのはなぜですか?何度も再試行する以外にこれを回避する方法はありますか?

foreach (var file in fileList.OrderBy(x => x.Name))
{
    var client = new WebClient();
    client.DownloadFileCompleted += (o, a) => Task.Factory.StartNew(() => OnDownloadFileCompleted());
    client.DownloadFileAsync(new Uri(AppStrings.FileServer + file.Name), AppStrings.FilePath + file.Name);
    webClientList.Add(client); //used to dispose later, after all files complete.
}
4

1 に答える 1

0

一度にダウンロードしようとしているファイルが多すぎます。バッチでダウンロードしてみてください。AsyncDownloadCompleted Event オブジェクトには、例外の内容を示すエラー プロパティもあります。

于 2013-04-13T03:01:14.207 に答える