'Исключение произошло во время запроса WebClient" при использовании C# ASP.NET

Итак, я построил программу автоматического обновления для моей программы.

код, который выполняется здесь:

new WebClient().DownloadFile("XXXX", checkingfolder.SelectedPath);

XXX-это мой веб-сервер, который работает как сервер VPS в verio, с новейшими IIS и всем остальным.

когда пользователь нажимает на кнопку Скачать, там написано:

'An exception occurred during a WebClient request.

дело в том, что я даже не знаю, почему - я просто пытаюсь поймать.

кто-нибудь здесь имеет представление, почему это случилось?

Спасибо за любую помощь, которую вы мне дадите, вы понятия не имеете, сколько вы мне здесь помогаете - спасибо еще раз !

6 ответов


Я могу воспроизвести это, если я указан, как кажется в вашем примере папку имя, а не название пункта назначения. Поставить имя.

в сторону; если я посмотрю на InnerException, это говорит мне, что проблема относится к пути к файлу:

using(var client = new WebClient())
{
    try
    {
        client.DownloadFile(
            "http://stackoverflow.com/questions/8033619/an-exception-occurred-durning-a-webclient-request-c-sharp-asp-net/8033687#8033687",
            @"j:\MyPath");
    }
    catch (Exception ex)
    {
        while (ex != null)
        {
            Console.WriteLine(ex.Message);
            ex = ex.InnerException;
        }
    }
}

что дает:

An exception occurred during a WebClient request.
Access to the path 'j:\MyPath' is denied.

если я изменю его на , он отлично работает:

client.DownloadFile(
    "http://stackoverflow.com/questions/8033619/an-exception-occurred-durning-a-webclient-request-c-sharp-asp-net/8033687#8033687",
    @"j:\MyPath\a.html");

иногда эта ошибка может возникнуть, когда другой класс или процесс обращается к файлу, который вы только что загрузили


Это дает исключение, если каталог к пути не существует.

например путь @"j:\Folder\SubFolder\123.формат PDF и папку не существует ,он будет бросать исключение.


Я столкнулся с этой ошибкой, когда пытался загрузить файл, где полученный загруженный путь к файлу был бы длиннее некоторого произвольного предела

после изменения имени пути загруженного файла длиной 250 символов проблема исчезла


Если Каталог не существует,это сообщение об ошибке приходит "Исключение произошло во время запроса WebClient" Поскольку веб-клиент не находит папку для хранения загруженных файлов.

надеюсь, это поможет -:)


помимо других ответов, будьте осторожны, что то же самое исключения webexception также может произойти, если клиентский процесс не имеет необходимых разрешений для создания выходного файла.

Я бы предложил вам принять следующую стратегию:

  1. загрузите файл в уникальное имя файла с .tmp (.txt) расширения окна Временная папка, чтобы избежать записи-разрешения и другие вопросы разрешения
  2. переместить временный файл в пункт назначения папка
  3. переименовать временный файл в имя файла назначения

надеюсь, что это помогает :-)