Сбой асинхронной загрузки WebClient через прокси?
Сначала я должен уточнить, что мой Proxy
установлено. Адрес и любые необходимые учетные данные уже успешно используются в процессе входа в веб-службу. При загрузке через прокси-сервер он иногда бывает успешным (~25% времени), но большую часть времени он загружается только частично и "завершается" с e.Error
установить (см. ниже).
public static void DownloadMyFile(string file)
{
Url = "https://myWebService.com/file.ext";
using (var client = new WebClient())
{
client.Proxy = proxy; //proxy is set and used elsewhere prior to logging in
//I use this event to manipulate my file when finished
client.DownloadFileCompleted += client_DownloadCompleted;
client.DownloadFileAsync(new Uri(Url), file);
}
}
Событие, которое я использую позже:
public static void client_DownloadCompleted(object sender, AsyncCompletedEventArgs e)
{
//e has an error here, no point in doing anything useful with the file
//Do other "stuff"
}
Внутренний текст исключения / трассировка стека:
Операция дешифрования не удалась, см. Внутреннее исключение.
в System.Net.ConnectStream.EndRead(IAsyncResult asyncResult)
в System.Net.WebClient.DownloadBitsReadCallbackState(состояние DownloadBitsState, результат IAsyncResult).
Опять же, чтобы уточнить: это прекрасно работает 100% времени, когда не используется прокси.
Изменить: внутреннее сообщение об исключении 2-го уровня The specified data could not be decrypted
, Нет трассировки стека, связанной с ним