我想通过带有自定义端口号的 ssl 或带有隐式 SSL 的 FTP 将文件上传和下载到 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
它给我错误:
The operation has timed out
这对于普通 ftp 和 ftp over ssl 工作正常,但不适用于自定义端口号或隐式 ssl。
你能告诉我 .net 支持这个吗?
或者我必须对这种情况使用其他方法
谢谢,
赫曼特
最佳答案
SO 上已经有一个非常相似的问题:Set Port number when using FtpWebRequest in C#
看起来解决方案是这样的:
yourFtpWebRequest.UsePassive = false;
但请检查该问题和答案以了解更多详细信息。
关于.net - 使用自定义端口号通过 SSL 发送文件 FTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7497452/