我正在使用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;
}
找到了解决方案
1-管理员打开命令提示符
2- cd o安装了“gacutil”的文件夹
3-确保renci.sshnet.dll在c盘中
4-使用gacutil注册