.net NAT后的FTPWebRequest(PASV、SSL)

.net NAT后的FTPWebRequest(PASV、SSL),.net,networking,ssl,ftpwebrequest,ftps,.net,Networking,Ssl,Ftpwebrequest,Ftps,是否有人成功使用.Net FTPWebRequest类从NAT后面将ftps发送到远程服务器?我的代码如下: Dim URI = "ftp://" & sRemoteDir & "/" Dim ftp As FtpWebRequest = Nothing Try ServicePointManager.ServerCertificateValidationCallback = AddressOf ValidateServerCertificate ftp

是否有人成功使用.Net FTPWebRequest类从NAT后面将ftps发送到远程服务器?我的代码如下:

 Dim URI = "ftp://" & sRemoteDir & "/"
    Dim ftp As FtpWebRequest = Nothing
  Try
   ServicePointManager.ServerCertificateValidationCallback = AddressOf ValidateServerCertificate
   ftp = CType(FtpWebRequest.Create(URI), FtpWebRequest)
   ftp.CachePolicy = New System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore)
   ftp.Credentials = New NetworkCredential(sUID, sPw)
   ftp.EnableSsl = True
   ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails

   Dim response As FtpWebResponse = CType(ftp.GetResponse(), FtpWebResponse)
   Dim responseStream As Stream = response.GetResponseStream
   Dim streamReader As New StreamReader(responseStream)
   Dim sb As New StringBuilder()
   sb.Append(streamReader.ReadToEnd)
   streamReader.Close()
   response.Close()
   Return sb.ToString()
  Catch ex As Exception
   Return (ex.Message)
  End Try
我得到以下例外情况:

无法从数据库中读取数据 传输连接:一个连接 尝试失败,因为已连接 在一次会议之后,该党没有作出适当的回应 一段时间,或确定的时间 连接失败,因为已连接 主机无法响应


我知道代码很好,因为如果机器不支持NAT,代码就可以工作。有什么想法吗?这台机器有一个静态IP,所有端口都对指定主机的通信开放。

在不知道防火墙或ftp服务器设置的情况下很难说清楚,但是猜测一下-您需要了解服务器是如何设置为使用被动模式的。 我最熟悉使用filezilla,他们对网络配置有很好的解释,并举例说明了他们的服务器/客户端软件需要如何设置…

答案在这里