ошибка загрузки файла - PullRequest
0 голосов
/ 29 июня 2011

Я написал программу для загрузки файлов с веб-сайта, используя WebClient.DownloadFile().

public static void downWeb()
{
    WebClient myWebClient = new WebClient();
    path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
    if (!Directory.Exists(path))
    {
        Directory.CreateDirectory(path);
    }              
    if (add() == 1)
    {
        Console.WriteLine("Response is " + add());           
        Console.WriteLine("Downloading File = " + dynFileName + "....");
        myWebClient.DownloadFile(fullAddress, (path + dynFileName));
    }
}

public static int add()
{
    string url = fullAddress;

    WebRequest webRequest = WebRequest.Create(url);
    WebResponse webResponse;
    try
    {
        webResponse = webRequest.GetResponse();
    }
    catch
    {
        return 0;
    }
    return 1;
}

downWeb() - это функция, вызываемая в функции Main().

add() - это функция, которая проверяет доступность файла на сервере. Если ответ положительный, возвращается значение «1».

fullAddress = адрес, с которого файлы должны быть загружены. Он меняется каждый раз перед вызовом этой функции в цикле, представленном в Main().

Когда я запускаю свое приложение, я прошу пользователя:

1) Введите URL для загрузки, например, www.1234.com \ samplefiles \ pg-1.pdf

2) Количество загружаемых страниц (путем изменения указанного выше имени файла в цикле, поскольку остальная часть URL-адреса совпадает на сервере)

Теперь моя проблема в том, что когда я загружаю файлы, первый файл загружается ОТЛИЧНО, а второй загрузка никогда не заканчивается. Там написано «ЗАПРОС ВРЕМЕНИ», и мое приложение закрывается.

Я не знаю, что здесь происходит.

Как это можно решить?

1 Ответ

2 голосов
/ 29 июня 2011

http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.getresponse.aspx

Вы должны вызвать метод Close, чтобы закрыть поток и освободить соединение. Невыполнение этого требования может привести к исчерпанию соединений в вашем приложении.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...