Отправить файл FTP через SSL с пользовательским номером порта - PullRequest
1 голос
/ 21 сентября 2011

Я хочу загрузить и загрузить файл на FTP через ssl с пользовательским номером порта или FTP с неявным SSL. Я использую метод .net ftpwebrequest & ftpwebresponse для этого. вот мой код:

Dim reqObj As FtpWebRequest = CType(WebRequest.Create(_Url + filename), FtpWebRequest) 
reqObj.Method = WebRequestMethods.Ftp.UploadFile 
reqObj.KeepAlive = False 
If _IsSSLEnable Then 
reqObj.UseBinary = True 
End If 
reqObj.Credentials = New NetworkCredential(_UserName, _Password) 
If _IsSSLEnable Then 
reqObj.EnableSsl = _IsSSLEnable Net.ServicePointManager.ServerCertificateValidationCallback = AddressOf validateCert  
End If 
Dim streamResponse As Stream 
streamResponse = reqObj.GetRequestStream() 

Я получаю ошибку после этого ...

Сервер возвратил адрес в ответ на команду PASV, отличный от адреса, с которым было установлено FTP-соединение.

Но если я добавлю

reqObj.UsePassive = False

Это дает мне ошибку:

Время ожидания истекло

это нормально работает для обычного ftp и ftp через ssl, но не для нестандартного номера порта или неявного ssl.

Скажите, пожалуйста, поддерживает ли .net это?

Или я должен использовать другой метод для этого случая

Спасибо

Hemant

1 Ответ

1 голос
/ 21 сентября 2011

Существует очень похожий вопрос уже на SO: Установить номер порта при использовании FtpWebRequest в C #

похоже, что решение было таким:

yourFtpWebRequest.UsePassive = false;

но проверьте этот вопрос и ответьте для более подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...