У меня странная проблема с Renci SSH.Net:
var sftp = new SftpClient(remoteHost, remotePort, remoteUserName, remotePassword);
try
{
sftp.Connect();
using (var file = new FileOutputStream(filePath))
{
sftp.DownloadFile(remoteFileName, file);
}
sftp.Disconnect(); // *
}
catch (Exception ex)
{
// log stuff
throw;
}
finally
{
sftp.Dispose();
}
Вышеприведенный код SshConnectionException
в //*
SshConnectionException
: "Клиент не подключен", хотя при проверке sftp.IsConnected
непосредственно перед sftp.IsConnected
true
.
Файл загружается, как ожидалось.
Столбец выглядит следующим образом:
at Renci.SshNet.Session.SendMessage(Message message)
at Renci.SshNet.Session.SendDisconnect(DisconnectReason reasonCode, String message)
at Renci.SshNet.Session.Disconnect()
at Renci.SshNet.BaseClient.Disconnect()
at My.Program.MyMethod() in c:\path\to\my\program.cs:line 42
У меня такая же проблема. Пройдите этот https://sshnet.codeplex.com/workitem/1561, чтобы узнать причину. Вот моя текущая работа:
catch (Exception ex)
{
if (ex is SshConnectionException || ex is SocketException)
{
_ifwInstance.Error(string.Format("Ignoring {0} during listing directory", ex.Message));
}
else
{
Debugger.Log(0, null, ex.InnerException.ToString());
throw new Exception("Login to SFT FAILED", ex);
}
}
catch (SshConnectionException ex) { }
что не идеально