Renci.SshNet.SftpClient.Connect, выбрасывающий SshConnectionException
Я работаю с библиотекой Renci.SshNet (v2016.0.0) в приложении C#, которое планируется ежедневно загружать файл на FTP-сервер. При тестировании на моей машине код ведет себя так, как и ожидалось, загружая файл на SFTP-сервер. Однако после развертывания в рабочей среде мы видим следующее исключение, даже если приложение подключается к тому же адресу хоста SFTP:
System.AggregateException: One or more errors occurred. ---> Renci.SshNet.Common.SshConnectionException: Server response does not contain SSH protocol identification.
at Renci.SshNet.Session.Connect()
at Renci.SshNet.BaseClient.Connect()
Соответствующий код, который вызывает исключение, выглядит следующим образом:
using (FileStream fileToUpload = new FileStream(exportFilePath, FileMode.Open))
{
using (var sftpClient = new SftpClient(SftpHost, 22, SftpUserName, new PrivateKeyFile(privateKeyFileName)))
{
sftpClient.ErrorOccurred += SftpErrorHandler;
sftpClient.Connect(); // Line throwing the exception
if (!sftpClient.IsConnected)
{
throw new InvalidOperationException($"An error occurred while connecting to the SFTP server {SftpHost}");
}
sftpClient.UploadFile(fileToUpload, fileName);
sftpClient.Disconnect();
sftpClient.ErrorOccurred -= SftpErrorHandler;
}
}
У кого-нибудь есть какие-либо предложения о том, как подойти к этому вопросу? С моей точки зрения, это очень неописуемая ошибка. Мне интересно, это конфигурация брандмауэра на машине, на которой запущено приложение? Или, возможно, это проблема конфигурации SFTP-сервера, к которому подключается приложение?