Страницы

Поиск по вопросам

среда, 24 октября 2018 г.

FTP сервер возвращает ошибку 227

Доброго времени суток. Собственно, сабж в титле.
Сама ошибка выглядит по меньшей мере непонятно:
"Удаленный сервер возвратил ошибку: 227 Entering Passive Mode (192,168,1,136,39,43)"
при чём тут ошибка? мне же и нужно в пассивный режим зайти... ладно, едем дальше.
Опыта работы с ftp нет, нашел какие то исходники, собрал проект, выдаётся вышеупомянутое исключение. Упростил код до невозможности, ошибка осталась. Странность ещё в том, что в totalCommander соединение удаётся,
private void btn_connect_Click_2(object sender, RoutedEventArgs e) { FtpWebRequest requestDir = (FtpWebRequest)FtpWebRequest.Create("ftp://192.168.1.136/"); requestDir.Credentials = new NetworkCredential("username", "password"); requestDir.Method = "LIST"; requestDir.UseBinary = true; requestDir.EnableSsl = false; requestDir.UsePassive = true;
try { WebResponse response = requestDir.GetResponse(); } catch (Exception ex) { MessageBox.Show(ex.ToString() + ":
" + ex.Message); } }
пробовал так же ставить
requestDir.UsePassive = false;
Получил ошибку 500, синтаксическую, мол, команда не опознана. Буду благодарен, если мне объяснят, что я делаю не так)


Ответ

Задайте
requestDir.UsePassive = false;
Далее, в чем возможно заключается сама ошибка и почему сервер возвращает ошибку 500.
Дело в том что Вы задали команду вывода списка файлов:
requestDir.Method = "LIST";
Попробуйте сначала вывести список директорий:
requestDir.Method = WebRequestMethods.Ftp.ListDirectory;
или так:
requestDir.Method = "NLST";
Список предустановленных команд FTP в .NET: https://msdn.microsoft.com/ru-ru/library/system.net.webrequestmethods.ftp(v=vs.110).aspx

Комментариев нет:

Отправить комментарий