WinSCP .NET 程序集 - Session.GetFiles 引发异常超时

WinSCP .NET assemblies - Timeout for Session.GetFiles to throw an exception

我写了一个使用 C# WinSCP .NET 程序集的 class。

class 将 WinSCP Session 保存为字段,当我调用函数 "Start" 时,class 初始化 WinSCP Session 并打开它,然后每 2 秒重复调用 Session.GetFiles

我想处理我的 class 中的所有异常情况,但有一种情况我无法获得异常。

案例是:我 运行 我的 class,它连接到 FTP 服务器并开始反复寻找要下载的文件(列表发生在 Session.GetFiles).几次后它调用 GetFiles 我关闭了 FTP 服务器。下次调用 GetFiles 时,程序会卡在等待服务器再次启动的阻塞方法 (GetFiles) 上。仅在 1.5-2 分钟后,它会抛出 SessionRemoteException 消息:"No connection could be made because the target machine actively refused it"

我希望它在阻塞 10 秒后抛出,而不是随机 1.5-2 分钟。

我尝试使用 WinSCP 网站中提到的每种超时方法。

您需要设置Session.ReconnectTime。默认为 120 秒。

session.ReconnectTime = TimeSpan.FromSeconds(10);