我想通过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
答案 0 :(得分:1)
在SO上已经有一个非常类似的问题:Set Port number when using FtpWebRequest in C#
看起来解决方案是这样的:
yourFtpWebRequest.UsePassive = false;
但请查看问题和答案以获取更多详细信息。