使用自定义端口号通过SSL发送文件FTP

时间:2011-09-21 09:24:05

标签: .net vb.net ssl ftp

我想通过ssl上传和下载文件到自定义端口号或带有隐式SSL的FTP。 我正在使用.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 over ssl,但不适用于自定义端口号或隐式ssl。

你能告诉我.net支持吗?

或者我必须在这种情况下使用其他方法

谢谢,

与Hemant

1 个答案:

答案 0 :(得分:1)

在SO上已经有一个非常类似的问题:Set Port number when using FtpWebRequest in C#

看起来解决方案是这样的:

yourFtpWebRequest.UsePassive = false;

但请查看问题和答案以获取更多详细信息。