修复新连接的超时问题

时间:2013-03-14 11:51:07

标签: c# ftp

这是我的代码:

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块中的代码是否有意义?它会解决超时问题吗?

1 个答案:

答案 0 :(得分:1)

如果库未公开Timeout属性,则无法执行任何操作。 FtpConnection是一个非常薄的WinINET包装器,所以你唯一的选择是编写一些P / Invoke代码来改变WinINET的超时。

你有没有理由使用这门课? .NET已经有FtpWebRequest/FtpWebResponse个类。您可以使用FtpWebRequest.Timeout属性更改操作的超时,或通过传递Infinite值(-1)

来禁用超时