修复新连接的超时问题

本文关键字:超时 问题 连接 新连接 | 更新日期: 2023-09-27 18:04:04

这是我的代码:

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

此错误发生在非常大的文件上。我得再等两个小时才能拿到。这就是我在这里问你的原因。catch块中的代码有意义吗?它会解决超时问题吗?

修复新连接的超时问题

如果库没有公开Timeout属性,您就无能为力了。FtpConnection是WinINET的一个非常薄的包装,所以你唯一的选择是可以写一些P/Invoke代码来改变WinINET的超时。

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