我这里有一个非常奇怪的问题。我已经构建了一个任务,将当天上传的所有文件下载到SFTP服务器。当我手动运行包时,通过在BIDS中执行它,一切都按预期工作。当我使用SQL作业运行时,它完成说它成功但没有下载文件。
我甚至构建了一个单独的应用程序来执行下载并使用"执行进程"任务,在SQL作业之外运行时再次正确运行。
我已检查目标文件夹的写入权限,并为每个能够读/写的帐户打开它,但这没有任何区别。我还添加了一个SSIS扩展,它具有我正在努力工作的SFTP任务。我宁愿理解为什么当前的流程无法运作。
我使用Renci.SshNet进行SFTP操作,我使用的代码如下。为什么这份工作会报告成功,但实际上并没有下载任何内容?
using (var sftp = new SftpClient("host", "username", "password"))
{
sftp.Connect();
var files = sftp.ListDirectory("/incoming");
foreach (SftpFile file in files)
{
Dts.TaskResult = (int)ScriptResults.Success;
using (var stream = File.Create(DestinationFolder + file.Name))
{
sftp.DownloadFile(file.FullName, stream);
}
}
sftp.Disconnect();
}