【问题标题】:Ftp connection problemftp连接问题
【发布时间】:2009-01-30 10:01:51
【问题描述】:

我有一个使用 BackgroundWorker 实现的应用程序,它使用 LumiSoft 库定期连接到 ftp(用于下载和上传)。它工作得很好,但过了一段时间(比如说 2 - 3 小时)线程(后台工作人员)在 Connect 方法下阻塞(女巫不会抛出任何异常)。 这是失败的代码部分: 尝试 {

            ftp = new FTP_Client();
            logMessages = "";
            logMessages += Utils.FormatLogMessage("Ftp wants to connect " +
                seData.host, Utils.MessageType.Info);
            worker.ReportProgress(0);

            ftp.Connect(seData.host, 21);
            ftp.Authenticate(seData.userName, seData.password);

            logMessages = "";
            logMessages += Utils.FormatLogMessage("Ftp connected to " +
                seData.host, Utils.MessageType.Info);
            error = false;
            worker.ReportProgress(0);
            System.Threading.Thread.Sleep(200);
            logMessages = "";
        }
        catch (Exception ex)
        {
            logMessages = "";
            if (ftp.IsConnected)
            {
                ftp.Disconnect();
            }
            ftp.Dispose();
            logMessages += Utils.FormatLogMessage(ex.Message,  Utils.MessageType.Error);
            logMessages += Utils.FormatLogMessage("Trying to reconnect in " +
                seData.recTime.ToString() + " seconds", Utils.MessageType.Info);
            worker.ReportProgress(0);
            Beep(500, 500);
            System.Threading.Thread.Sleep(seData.recTime * 1000);
            error = true;
        }

假设每 2 分钟执行一次。 所以它会阻止“ftp.Connect(seData.host, 21);”这只会在一段时间后发生。知道为什么会这样吗?如果您有任何建议,请告诉我。 谢谢。 达纳。

【问题讨论】:

    标签: ftp download backgroundworker connect


    【解决方案1】:

    除非捕获到异常,否则您似乎不会处理 FTP_Client 对象?还是你遗漏了一些代码?

    【讨论】:

      【解决方案2】:

      它会自行关闭端口吗?如果没有,可能超过了最大可用网络端口。

      【讨论】:

        【解决方案3】:

        @米奇小麦 每次尝试/捕获之前,我都会处理 FTP_Client 。我只是省略了那部分代码

        【讨论】:

          【解决方案4】:

          @jhornnes 我不认为是这样的。有时它甚至会运行 2 天(连接和断开连接)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-08-23
            • 2020-03-20
            • 2011-08-20
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多