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

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Собственно, сабж в титле. Сама ошибка выглядит по меньшей мере непонятно:
"Удаленный сервер возвратил ошибку: 227 Entering Passive Mode (192,168,1,136,39,43)"
при чём тут ошибка? мне же и нужно в пассивный режим зайти... ладно, едем дальше. Опыта работы с ftp нет, нашел какие то исходники, собрал проект, выдаётся вышеупомянутое исключение. Упростил код до невозможности, ошибка осталась. Странность ещё в том, что в totalCommander соединение удаётся,
Листинг программы
  1. private void btn_connect_Click_2(object sender, RoutedEventArgs e)
  2. {
  3. FtpWebRequest requestDir = (FtpWebRequest)FtpWebRequest.Create("ftp://192.168.1.136/");
  4. requestDir.Credentials = new NetworkCredential("uploadhis", "111111");
  5. requestDir.Method = "LIST";
  6. requestDir.UseBinary = true;
  7. requestDir.EnableSsl = false;
  8. requestDir.UsePassive = true;
  9. try
  10. {
  11. WebResponse response = requestDir.GetResponse();
  12. }
  13. catch (Exception ex)
  14. {
  15. MessageBox.Show(ex.ToString() + ": \n" + ex.Message);
  16. }
  17. }
пробовал так же ставить

requestDir.UsePassive = false;

, тогда ошибка 500, синтаксическая, мол, команда не опознана. Буду благодарен, если мне объяснят, что я делаю не так)

Решение задачи: «FTP сервер возвращает ошибку 227»

textual
Листинг программы
  1.         FTP _ftp;
  2.  
  3.         private void btn_Connect_click(object sender, RoutedEventArgs e)
  4.         {
  5.             _ftp = new FTP();
  6.             _ftp.TransferCompleteEvent += new FTP.TransferCompleteEventHandler(ftp_TransferCompleted);
  7.  
  8.             _ftp.HostAddress = "192.168.1.136";
  9.             _ftp.UserName = "uploadhis";
  10.             _ftp.Password = "111111";
  11.             _ftp.Port = 21;
  12.             _ftp.UseBinary = true;
  13.             _ftp.OverwriteFiles = true;
  14.             _ftp.OverwriteReadOnlyFiles = false;
  15.             _ftp.EnableSSL = false;
  16.             _ftp.UsePassive = true;
  17.  
  18.             _ftp.Connect();
  19.  
  20.              string localPath = new FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName;
  21.              _ftp.CurrentDirectory = @"";
  22.              _ftp.DownloadDirectoryAsync(localPath, @"datalog");
  23. }
  24.  
  25.         private void ftp_TransferCompleted(Object sender, TransferCompletedEventArgs e)
  26.         {
  27.             _ftp.Disconnect();
  28.            
  29.              //...
  30.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы