我有一个 IIBv9 应用程序,它使用标准 FileOutput 节点和 FTP 安全身份将文件输出到 Filezilla FTP 服务器。在大多数情况下,它运行良好。但是,它偶尔无法传输文件并产生异常:
(0x03000000:NameValue):File = 'AbstractFileOutputNode.java' (CHARACTER)
(0x03000000:NameValue):Line = 809 (INTEGER)
(0x03000000:NameValue):Function = 'transferToFtpServer' (CHARACTER)
(0x03000000:NameValue):Type = '' (CHARACTER)
(0x03000000:NameValue):Name = '' (CHARACTER)
(0x03000000:NameValue):Label = '' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPmsgs' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 3381 (INTEGER)
(0x03000000:NameValue):Text = '' (CHARACTER)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'FileOutput' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = '(myFlowName)' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = '(host)' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = '(login)' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'USER =>response: ReplyCode: 220' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'FTP' (CHARACTER)
Filezilla 日志仅包含以下几行:
(005433) 21.12.2020 7:42:29 - (not logged in) (192.168.15.104)> 220 Please visit https://filezilla-project.org/
(005433) 21.12.2020 7:42:35 - (not logged in) (192.168.15.104)> USER (login)
(005433) 21.12.2020 7:42:35 - (not logged in) (192.168.15.104)> 331 Password required for (login)
(005433) 21.12.2020 7:42:35 - (not logged in) (192.168.15.104)> disconnected.
重新启动代理或重新启动 filezilla 服务器似乎有助于解决该问题,并且相同的文件已成功传输。但我不明白是什么导致了这些问题。
答案1
我对日志的理解是,发生了断线事件。客户端重新连接,但服务器希望用户登录。客户端不理解这个需求,想继续上传。结果就是上传停止了。
造成这种中断的一个常见原因是客户端的 IP 地址发生变化。如果客户端在路由器上的 DHCP 租约已过期,则会发生这种情况,ISP 也可能发生这种情况。但可能还有许多其他原因,不胜枚举。
瞬间断线的解释得到了发帖人的经验支持:“代理重新启动或 filezilla 服务器重新启动似乎有助于解决这个问题,并且同一个文件可以成功传输”。