1

C# WinSCP .NET アセンブリを使用するクラスを作成しました。

クラスは WinSCP をフィールドとして保存してSessionいます。関数「Start」を呼び出すと、クラスは WinSCPSessionを初期化して開き、Session.GetFiles2 秒ごとに繰り返し呼び出します。

クラス内のすべての例外ケースを処理したいのですが、例外を取得できないケースが 1 つあります。

ケース: クラスを実行すると、クラスは FTP サーバーに接続し、ダウンロードするファイルを繰り返し探し始めます (リストは で行われていますSession.GetFiles)。数回呼び出した後GetFiles、FTP サーバーをシャットダウンしました。次にが呼び出されると、プログラムは、サーバーが再び起動するのを待ってGetFilesいるブロッキング メソッド ( ) でスタックします。GetFiles1.5〜2分後にのみ、「ターゲットマシンが積極的に拒否したため、接続できませんでした」SessionRemoteExceptionというメッセージがスローされます。

ランダムな1.5〜2分ではなく、10秒のブロック後にこれをスローしたい。

WinSCP Web サイトに記載されているすべての Timeout メソッドを使用してみました。

4

1 に答える 1

1

を設定する必要がありSession.ReconnectTimeます。デフォルトは 120 秒です。

session.ReconnectTime = TimeSpan.FromSeconds(10);
于 2015-10-22T05:56:58.650 に答える