SSH.NET не перехватывает сообщения об исключениях - PullRequest
0 голосов
/ 27 октября 2018

Мы используем Цербер FTP-сервер. А для клиента я использую библиотеку SSH.NET для подключения к серверу и загрузки файла. Я был в состоянии подключиться и загрузить файлы на FTP-сервер без проблем в большинстве случаев.

Однако, если путь назначения не существует на сервере FTP, библиотека SSH.NET выдает исключение, как и ожидалось. Однако свойство сообщения исключения является пустым.

var sftpClient = new SftpClient(host,username,password);
sftp.connect();
var destination = "SomeInvalidPath\myfile.txt"
using (var fs = new FileStream(sourceFilePath, FileMode.Open, FileAccess.Read))
{
      try
      {
         sftp.UploadFile(fs, destination);                        
      }
      catch (Exception ex)
      { 
         // ex.Message is empty ???
         Logger.Current.Error(ex, "Error while FTP");             
      }                
}

Не уверен, что эта проблема библиотеки SSH.NET или FTP-сервер должен распространять ошибки обратно клиенту?

Обновление 1

трассировка стека

"at Renci.SshNet.Sftp.SftpSession.RequestOpen (Строка, флаги флаги, логическое значение nullOnError) \ r \ n в Renci.SshNet.SftpClient.InternalUploadFile (поток ввода, путь строки, Флаги флаги, SftpUploadAsyncResult asyncResult, Действие 1 uploadCallback)\r\n at Renci.SshNet.SftpClient.UploadFile(Stream input, String path, Action 1 uploadCallback) \ r \ n в XXXXXX

...