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);
我写了一个使用 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);