Загрузить\Выгрузить файл(ы) на FTP в пассивном режиме - Visual Basic .NET

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

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

Всем привет! Столкнулся с проблемой, обмена с FTP (на IIS) с помощью Net.FtpWebRequest в пассивном режиме. При попытке загрузить список каталогов, получить или отправить на фтп данные сообщает об ошибке: 227 Entering Passive Mode (ххх,ххх,ххх,ххх,224,18). Использование свойства UsePassive = true, также не помогает, ошибка повторяется. Если свойство установить в UsePassive = false, сообщит о следующей ошибке: "500 PORT/EPRT (Active Mode/Extended Active Mode) is not supported. Use PASV/EPSV instead of this" Примеры кода перепробовал несколько, в т.ч. и из готовых решений, ошибка одна и таже. Поиск по форуму, да и гуглу особо результата не дал. Да я понимаю, что при пассивном подключении нужно получить порт от сервера, но вот как его получить и подключиться к серверу никак не пойму. Пароли и прочее все верно. Подключение через браузер и тоталкомандер успешные. Вот один из примеров кода на котором я тестировал (значение свойства UsePassive = true, дописывал самостоятельно):
Пожалуйста, помоги разобраться и как осуществить подключение к серверу в пассивном режиме, может даже пример кода у кого завалялся. Заранее спасибо!

Решение задачи: «Загрузить\Выгрузить файл(ы) на FTP в пассивном режиме»

textual
Листинг программы
Dim ftp As New FTP("login", "password")
 Dim directory As List(Of String) = ftp.GetDirectory("ftp://site.ru/")
        ListBox1.Items.Clear()
        For Each item As String In directory
            ListBox1.Items.Add(item)
        Next

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

11   голосов , оценка 3.818 из 5
Похожие ответы