【问题标题】:SSIS FTP won't send filesSSIS FTP 不会发送文件
【发布时间】:2019-08-22 18:37:00
【问题描述】:

我目前正在尝试使用失败的 SSIS FTP 任务将单个文件发送到 FTP 站点,并且收到错误消息:

[FTP 任务] 错误:无法使用“FTP 连接管理器”发送文件。

使用 SSIS FTP 任务,我正在尝试将文件从本地驱动器发送到 FTP 根文件夹。我拥有读取和写入的所有权限。我尝试删除 FTP 服务器上的文件(成功),使用 WinSCP 移动文件(成功),从 FTP 文件夹中删除文件(成功)以及在 FTP 站点上创建一个目录。但是,当我尝试从本地文件夹发送到 FTP 站点的根驱动器时,出现上述错误。我的本地路径也包含我要发送的文件

C:\WebSites\Files\Import\SFTP\Extract\CE_CS_Shipment.xlsx

还有什么我可以尝试的,因为我无能为力。

【问题讨论】:

  • 您确定服务器是 FTP 而不是 SFTP 或 FTPS? SSIS 本身只支持纯 FTP。如果您已经在使用 WinSCP,为什么不使用它来传输文件?
  • 肯定是FTP。不幸的是,在处理完所有内容后,我必须使用 SSIS 进行文件传输。我只是使用 WinSCP 来确保我可以通过这种方式连接和传输文件。
  • SSIS` FTP Task 是命令行ftp 命令的包装器,您应该使用它进行测试。如果失败,您的目标 FTP 站点有一个非常规的设置
  • 你知道你可以使用 SSIS 的 WinSCP 吗?
  • 我支持 WinSCP 的建议。您甚至不必编写大部分脚本,有一个菜单选项可以自动生成存根。使用 Execute Process Task 调用 WinSCP 并将脚本属性传递给参数。我有许多 SSIS 包就是这样工作的,可以将数据发送到异地。

标签: ssis ftp


【解决方案1】:

我似乎找到了一种解决方法,因为在 SSIS 中使用 FTP 任务并没有让步。 我在 FTP 站点上创建了文件,然后复制了流,效果很好。

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(sftpServer + result);
request.Credentials = new NetworkCredential(sftpUser, strFTPPassword);
request.Method = WebRequestMethods.Ftp.UploadFile;
using (Stream fileStream = File.OpenRead(archiveFolder.Replace("//", "/") + @"/" + result))
using (Stream ftpStream = request.GetRequestStream())
{
     fileStream.CopyTo(ftpStream);
}

如果其他人正在寻找或解决同样的问题,这现在可以完美地工作。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-26
  • 1970-01-01
相关资源
最近更新 更多