Метод WebClient.DownloadFile создает попытку чтения или записи в защищенную память. исключение - PullRequest
0 голосов
/ 17 апреля 2020

Метод WebClient.DownloadFile () генерирует исключение случайным образом на нескольких системах. Исключение говорит о попытке чтения или записи защищенной памяти. Это часто указывает на то, что другая память повреждена.

Вот код:

WebClient objWebClient = new WebClient();
string strTargetPath = System.IO.Path.Combine(System.IO.Path.Combine(Environment.GetEnvironmentVariable("APPDATA"), strTempDownloadFolder), "Lib");
if (!Directory.Exists(strTargetPath))
{
     Directory.CreateDirectory(strTargetPath);
}
strzipFilePath = System.IO.Path.Combine(strTargetPath, "abc.zip");
objWebClient.DownloadFile("some file url", strzipFilePath );

В чем причина и как я могу это исправить?

1 Ответ

0 голосов
/ 21 апреля 2020
Экземпляр

WebClient может быть удален методом objWebClient.Dispose(). Это высвобождает ресурсы, удерживаемые экземпляром.

Кроме того, вы можете кодировать как этот.

using (WebClient objWebClient = new WebClient()) {
    objWebClient.DownloadFile(strFileUrl, strzipFilePath);
}
...