WebClient не загружает полный файл?

У меня есть WebClient загрузка файла.chm (как видно из кода ниже). Кажется, это очень нерегулярно в том, что он загружает. Полный размер файла составляет около 2500-2600 КБ, но примерно в 50-75% случаев я получаю файлы меньшего размера (некоторые примеры: 1233 КБ, 657 КБ, 353 КБ, 1745 КБ и т. Д.).
(Код упрощен / личные данные удалены)

public static void DownloadMyFile(string destFileAndPath)
{
    //Get base for help Url, stop at first "/" ignoring "https://", then add path in server
    string Url = "https://mywebservice.com/myFile.chm";

    using (var client = new WebClient())
    {
        //I need to do stuff to the downloaded file when done
        client.DownloadFileCompleted += client_DownloadFileCompleted;

        client.DownloadFileAsync(new Uri(Url), destFileAndPath);

        //More waiting?
        while (client.IsBusy) { }
    }
}

И событие, которое работает нормально, но на "незаконченном" файле:

public static void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
    //Do stuff like comparing the file to another, renaming, copying, etc.
}  

Я действительно что-то здесь упускаю?

1 ответ

Похоже, комментарий Пола Руба привел меня к правильному решению. Я проверял только e.Cancelled имущество.

Иногда возникали исключения (в основном WebException какой-то), что приведет к ошибке загрузки. Однажды я проверил e.Error собственность, я смог либо повторить попытку, либо справиться со сбоем в моей ситуации.

Другие вопросы по тегам