【问题标题】:Indy TIdFTP - EIdReplyRFCError - "Can't open data connection"Indy TIdFTP - EIdReplyRFCError - “无法打开数据连接”
【发布时间】:2012-07-02 14:44:06
【问题描述】:

我们正在使用 Indy TIdFTPFileZilla 0.9.39 beta FTP 服务器。
经常(并非总是)我们的客户端收到以下异常:

exception class   : EIdReplyRFCError
exception message : Can't open data connection.
main thread ($d38):
006352e6 +03a     IdReplyRFC        258  +1 TIdReplyRFC.RaiseReplyError
0063af39 +005     IdTCPConnection   540  +0 TIdTCPConnection.RaiseExceptionForLastCmdResult
0063b17c +050     IdTCPConnection   644 +10 TIdTCPConnection.CheckResponse
0063aed2 +03a     IdTCPConnection   529  +2 TIdTCPConnection.GetResponse
0065986d +1ad     IdFTP            1460 +29 TIdFTP.InternalGet
006595bb +0f3     IdFTP            1386 +16 TIdFTP.List

这个错误只发生在他的网络内部!而且它不一致
我无法在我们的网络上重现此错误。 我在网上搜索了整个网络以找到解决方案,但没有找到任何东西。 有什么办法可以解决这个问题???

编辑:我们正在使用“被动”模式。

【问题讨论】:

  • 更多细节可能会有所帮助:是否涉及任何防火墙或代理?数据连接使用可能被阻塞或关闭的单独端口。 “被动”模式 FTP 也可能会有所帮助(Indy FTP 具有此模式的属性)。
  • @mjn,我们正在使用“被动”模式。如果涉及防火墙或代理,我们能做些什么吗?正如我所说,这有时有效,有时失败......
  • FileZilla Server 的最新稳定版本为 0.9.41。 “beta”听起来不是一个稳定的版本,我会尝试升级。
  • @mjn,0.9.41 也是“测试版”。我已经升级了,正在用客户端测试...
  • “无法打开数据连接”在被动模式下意味着 FileZilla 无法在其端打开新的侦听端口,或者在等待TIdFTP 连接时超时。第一个是服务器端的资源问题,另一个是客户端和服务器之间的网络问题。您必须查看 FileZilla 的日志以确定出了什么问题。

标签: delphi ftp delphi-7 indy indy10


【解决方案1】:

如果有人有同样的问题,可能是 TLS 的情况,一些服务器有这个问题。您可以打开/关闭:

void __fastcall TForm1::turnOffTLS(TIdFTP *choosenFTP){ choosenFTP->DataPortProtection=ftpdpsClear; choosenFTP->UseTLS=utNoTLSSupport; }

void __fastcall TForm1::turnOnTLS(TIdFTP *choosenFTP){ choosenFTP->UseTLS=utUseExplicitTLS; choosenFTP->DataPortProtection=ftpdpsPrivate; }

【讨论】:

    猜你喜欢
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    • 2015-09-03
    相关资源
    最近更新 更多