我正在使用Renci访问SSIS包中的SFTP文件
我的程序包只有一个控件“脚本任务”来执行一些.net代码,我的要求使用Renci参考,因此我在我的参考中添加了renci.sshnet.dll。
问题是,当我尝试执行程序包时,出现此错误消息
我尝试注释掉脚本以查看导致错误的原因
我看到这行代码,使执行失败并发送此错误消息
using (var sftp = new SftpClient(host, username, password))
我在Windows Forms C#.net中测试了我的代码,它运行正常
这是我包装中的代码
public void Main()
{
// TODO: Add your code here
string host = @"myhost.mydomain.com.au";
string username = "MyUserName";
string password = "MyPassword";
string remoteDirectory = "/SourceFolder/";
string localDirectory = @"C:\Test\";
using (var sftp = new SftpClient(host, username, password))
{
sftp.Connect();
var files = sftp.ListDirectory(remoteDirectory);
foreach (var file in files)
{
string remoteFileName = file.Name;
if ((!file.Name.StartsWith("."))) //&& ((file.LastWriteTime.Date == DateTime.Today)))
using (Stream file1 = File.OpenWrite(localDirectory + remoteFileName))
{
sftp.DownloadFile(remoteDirectory + remoteFileName, file1);
}
}
}
Dts.TaskResult = (int)ScriptResults.Success;
}
答案 0 :(得分:0)
找到解决方案
1-以管理员身份打开命令提示符
2- cd o安装“ gacutil”的文件夹
3-确保renci.sshnet.dll位于C驱动器中
4-使用gacutil注册