Поэтому я отмечаю это как ответ. Комментарии были оценены.
кол FTP предназначен для поддержки канала управления и использования этого канала управления, чтобы сообщать серверу об открытии соединений TCP и передаче файлов.
Сервер, отправляющий или получающий файлы, НЕ должен совпадать с сервером, к которому подключен канал управления FTP. Это может быть соединение типа «треугольник».
Это также позволяет клиенту один раз войти в систему на канале управления и многократно сообщать серверу о передаче файлов без повторной регистрации в канале управления.
По-видимому, эта концепция полностью избежала MS, когда они создали C #FtpWebRequest
класс.
Мне нужно сделать именно то, для чего был разработан протокол FTP:
Подключиться к серверу
Передать в учетных данных
Создайте каталоги (и с радостью игнорируйте ошибку «уже существует»)
Повторно передавать файлы на сервер
Выйти из канала управления
Я уверен, что не вижу этой способности вFtpWebRequest
класс. Или что-нибудь, что может позволить такой поток в коде C #.
Я посмотрел:
и вЗагрузить несколько файлов на FTP в C #
и другие.
Но ничто из этого, кажется, не позволяет контролировать то, что предполагалось.
Я могу указатьKeepAlive
свойство, но цикл должен повторно вызыватьWebRequest.Create(targetName);
функция, которая создаст НОВОЕ соединение и получит НОВЫЙ ответ. Затем они выпадают из сферы действия или становятся сиротами, поэтому по определению они уничтожаются. Поэтому соединение ДОЛЖНО быть закрыто, а затем его необходимо будет снова открыть. Для подключения к данным это нормально, но где возможность манипулировать портом CONTROL?
Класс не позволяет пользователю отличать порт CONTROL от порта DATA, как определяет спецификация FTP.
Есть ли способы использовать класс C #, чтобы сделать FTP так, как он должен был быть? Потому что в узком мышлении Microsoft весь мир выглядит как протокол HTTP Get / Response.
Любой совет приветствуется.
-Scotty