2015-10-21 5 views
1

Я написал класс, который использует сборку C# WinSCP .NET.WinSCP .NET assemblysies - Тайм-аут для Session.GetFiles для исключения исключения

Класс сохранения WinSCP Session как поле, и когда я вызываю функцию «Start» класс инициализирует WinSCP Session и открывает его, а затем повторно вызывает Session.GetFiles каждые 2 секунды.

Я хочу обрабатывать все исключения в моем классе, и есть один случай, я не могу получить исключение.

Дело в том, что я запускаю свой класс, он подключается к FTP-серверу и начинает многократно искать файлы для загрузки (перечисление, которое происходит в Session.GetFiles). Через несколько раз он вызывает GetFiles Я отключил FTP-сервер. В следующий раз вызывается GetFiles, программа зацикливается на методе блокировки (GetFiles), который ждет, пока сервер снова встанет. Только через 1,5-2 минуты он выдает SessionRemoteException с сообщением: «Соединение не может быть сделано, потому что целевая машина активно отказалась от него».

Я хочу, чтобы это было выброшено через 10 секунд после блокировки, а не случайно 1,5-2 минуты.

Я пробовал использовать каждый метод Timeout, упомянутый на веб-сайте WinSCP.

ответ

1

Вам необходимо установить Session.ReconnectTime. По умолчанию он равен 120 секундам.

session.ReconnectTime = TimeSpan.FromSeconds(10);