C# WinSCP .NET アセンブリを使用するクラスを作成しました。
クラスは WinSCP をフィールドとして保存してSession
います。関数「Start」を呼び出すと、クラスは WinSCPSession
を初期化して開き、Session.GetFiles
2 秒ごとに繰り返し呼び出します。
クラス内のすべての例外ケースを処理したいのですが、例外を取得できないケースが 1 つあります。
ケース: クラスを実行すると、クラスは FTP サーバーに接続し、ダウンロードするファイルを繰り返し探し始めます (リストは で行われていますSession.GetFiles
)。数回呼び出した後GetFiles
、FTP サーバーをシャットダウンしました。次にが呼び出されると、プログラムは、サーバーが再び起動するのを待ってGetFiles
いるブロッキング メソッド ( ) でスタックします。GetFiles
1.5〜2分後にのみ、「ターゲットマシンが積極的に拒否したため、接続できませんでした」SessionRemoteException
というメッセージがスローされます。
ランダムな1.5〜2分ではなく、10秒のブロック後にこれをスローしたい。
WinSCP Web サイトに記載されているすべての Timeout メソッドを使用してみました。