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-сервера, к которому подключается приложение?

0 ответов

Другие вопросы по тегам