【问题标题】:FTPWebRequest behind NAT (PASV,SSL)NAT 后面的 FTPWebRequest (PASV,SSL)
【发布时间】:2010-07-27 13:27:35
【问题描述】:

有没有人成功地使用 .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,并且所有端口都对进出指定主机的流量开放。

【问题讨论】:

标签: .net networking ssl ftpwebrequest ftps


【解决方案1】:

如果不知道您的防火墙或 ftp 服务器设置,很难准确地说,但猜测一下 - 您需要查看服务器是如何设置为使用被动模式的。 我最熟悉使用 filezilla,他们对网络配置有很好的解释 here 以及如何设置他们的服务器/客户端软件的示例......

【讨论】:

    猜你喜欢
    • 2011-07-01
    • 2011-11-01
    • 2013-10-05
    • 2013-12-09
    • 2019-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    相关资源
    最近更新 更多