【问题标题】:Fixing timeout issue with a new connection修复新连接的超时问题
【发布时间】:2013-03-02 18:06:30
【问题描述】:

这是我的一段代码:

string my_dir = "";
try
{
    my_dir = ftp.GetCurrentDirectory() + "/test";
    //It sometimes crashes here. I get timeout error.
}
catch
{
    ftp.Close();
    ftp.Open();
    my_dir = ftp.GetCurrentDirectory() + "/test";
}

ftp 是 FtpConnection 类的实例:http://ftplib.codeplex.com/discussions?searchText=&size=10&page=1

此错误发生在非常大的文件上。我将不得不等待大约 2 小时才能再次获得它。这就是我在这里问的原因。 catch 块中的代码是否有意义?它会解决超时问题吗?

【问题讨论】:

    标签: c# ftp


    【解决方案1】:

    如果库不公开 Timeout 属性,您无能为力。 FtpConnection 是 WinINET 上的一个非常薄的包装器,因此您唯一的选择是编写一些 P/Invoke 代码来更改 WinINET 的超时。

    你使用这个类有什么原因吗? .NET 已经有了FtpWebRequest/FtpWebResponse 类。您可以使用 FtpWebRequest.Timeout 属性更改操作的超时,或通过传递 Infinite 值 (-1) 来禁用超时

    【讨论】:

      猜你喜欢
      • 2019-12-30
      • 2018-10-12
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      相关资源
      最近更新 更多