.Net FtpWebRequest се проваля понякога

Опитвам се да изброя подробности за файла с помощта на FtpWebRequest, но много често се проваля с WebException и показва грешка 530 Потребителят не е влязъл.

Как е възможно това, че работи известно време с едни и същи идентификационни данни?

Извадка от кода:

        reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpuri));
        reqFTP.UseBinary = true;
        reqFTP.Credentials = new NetworkCredential(userName, password);
        string[] downloadFiles = new string[0];
            reqFTP.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
            WebResponse response = reqFTP.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream());
            downloadFiles = reader.ReadToEnd().Replace("\r\n", "¤").Split('¤');
            reader.Close();
            response.Close();

person Henrik    schedule 13.10.2009    source източник
comment
Имал съм точно този проблем. Изглежда, че се случва по-често, когато вече съм бил свързан към сървъра за известно време, след което сменям директорията и правя списък.   -  person Jonathan    schedule 17.02.2010
comment
Вашият проблем е подобен на грешката на вградения FTP в Windows Explorer (т.е.: Internet Explorer, интегриран в Explorer.exe), където след навигация в директория той губи вашите идентификационни данни и многократно ви моли да влезете. Но никога не съм чувал за това поведение при използване на dotnet.   -  person David Anderson    schedule 28.04.2011


Отговори (1)


Опитайте настройка

reqFTP.KeepAlive = false;

и евентуално ако горното не работи

reqFTP.UsePassive = false;

Открих, че задаването им на false намалява значително появата на тази грешка (която се генерира от FTP сървъра).

person Peter    schedule 27.07.2011