我们正在使用Cerberus FTP 服务器。对于客户端,我使用SSH.NET库连接到服务器并上传文件。大多数情况下,我都能毫无问题地连接文件并将文件上传到 FTP 服务器。
但是,当 FTP 服务器上不存在目标路径时,SSH.NET 库会按预期抛出异常。但是 Exception 的 Message 属性是空的。
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
堆栈跟踪
" 在 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