我们正在使用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