在SSIS中使用Renci时如何避免崩溃

在SSIS中使用Renci时如何避免崩溃,ssis,reference,ftp,Ssis,Reference,Ftp,我正在使用Renci访问SSIS包中的SFTP文件 我的包只有一个控件“脚本任务”来执行一些.net代码,我的代码需要Renci引用,所以我在引用中添加了Renci.sshnet.dll 问题是,当我试图执行我的包时,我得到了这个错误消息 我试着对脚本进行注释,看看是什么导致了错误 我得到这行代码,它使执行失败并发送此错误消息 using (var sftp = new SftpClient(host, username, password)) 我在WindowsFormsC#.net中测试

我正在使用Renci访问SSIS包中的SFTP文件

我的包只有一个控件“脚本任务”来执行一些.net代码,我的代码需要Renci引用,所以我在引用中添加了Renci.sshnet.dll

问题是,当我试图执行我的包时,我得到了这个错误消息

我试着对脚本进行注释,看看是什么导致了错误

我得到这行代码,它使执行失败并发送此错误消息

using (var sftp = new SftpClient(host, username, password))
我在WindowsFormsC#.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注册时,TargetInvocationExceptions有一个包含根问题的内部异常。您需要找到我们的内部异常是什么(
InnerException
属性)。没有这些信息,我们无法帮助您。而且,您正在使用SFTP协议,所以请使用标记,而不是。FTP和SFTP是两种不同的协议。