我想使用自定义端口号通过ssl上传文件并将其下载到FTP,或者使用隐式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和ssl上的ftp正常工作,但不适用于自定义端口号或隐式ssl。

您能告诉我.net是否支持此功能?

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

谢谢,

赫曼特

最佳答案

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

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

yourFtpWebRequest.UsePassive = false;


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

09-08 06:08