Мы используем Цербер 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