我想使用自定义端口号通过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;
但请查看该问题和答案以获取更多详细信息。