概括
我们有一个 FTP 服务器(以主动模式运行)。我们有一个 FTP 客户端,它正在连接到服务器,执行任务,然后关闭连接。FTP 客户端可以在多个线程上执行此操作。
问题
我们遇到过这样的情况:客户偶尔无法在 FTP 连接上执行操作。实际连接已与服务器建立,但当服务器尝试在数据端口上返回数据时失败。
观察结果
我们有一个简单的测试 FTP 客户端,它运行两个独立的线程。每个线程都从根目录执行文件递归列表。如果客户端计算机上运行防火墙,几分钟内就会挂起。如果客户端计算机上的防火墙已关闭,测试应用程序似乎可以正常运行。这确实表明存在潜在的防火墙问题。但是,如果防火墙已打开,我们可以毫无问题地列出公司 FTP 服务器上的文件。
如果简单测试 FTP 客户端运行单线程,那么无论防火墙是否打开,我们都不会遇到任何问题。
我们有另一个简单的测试 FTP 客户端,它在关闭防火墙的情况下运行了 4 个线程(每个线程打开一个新的 FTP 连接,列出目录并尽快关闭 FTP 连接)。打开防火墙后,它会在很短的时间内失败。令人困惑的是,如果测试 FTP 客户端和 FTP 服务器在同一台机器上运行,即使防火墙已关闭,也会发生故障。这意味着问题可能与防火墙无关。
任何能解决此问题的帮助都将不胜感激。
谢谢伊恩
答案1
您是否在 XP 上运行 FTP 服务器?如果是,您可能需要考虑以下事项:
http://www.pcreview.co.uk/forums/thread-3690895.php
它标识了一些 XP“特性”,这些特性使其不适合在任何高利用率服务器角色/应用程序中使用。