You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移至Azure SQL MI后,如何在ADF中运行含winscp.exe的SSIS包?

解决SSIS脚本任务调用WinSCP.exe的最小改动方案

针对你在ADF中运行SSIS包时遇到的WinSCP.exe调用问题,以下是几个最小改动的可行方案:

方案1:将WinSCP部署到SSIS运行时节点

  • 如果使用自托管Azure-SSIS IR:直接把WinSCP.exe及依赖文件(如WinSCPnet.dll)复制到IR节点的本地固定路径(比如C:\Tools\WinSCP\),然后修改脚本任务中调用WinSCP的路径为该本地路径即可,脚本逻辑完全不用改,改动量最小。
  • 如果使用托管Azure-SSIS IR:通过自定义安装脚本将WinSCP部署到IR节点。可以在创建/更新托管IR时,指定包含WinSCP安装命令的PowerShell脚本(比如从Blob存储下载安装包并静默安装),之后脚本任务同样使用节点本地的安装路径调用exe。

方案2:替换exe调用为WinSCP .NET Assembly

  • 移除脚本任务中调用winscp.exe的命令行代码,改用WinSCP的.NET库实现SFTP传输逻辑。
  • 操作步骤:
    1. 在SSIS项目中添加WinSCP .NET Assembly的NuGet包。
    2. 在脚本任务的代码中引用WinSCP命名空间,用API替代原有的命令行参数(比如Session.Open连接SFTP,Session.PutFiles上传文件)。
  • 此方案无需依赖外部exe文件,适合长期在Azure环境运行,仅需修改脚本任务的代码逻辑,SSIS包其他部分无需改动。

方案3:将WinSCP打包到SSIS部署包

  • 把WinSCP.exe及依赖文件添加到SSIS项目中,设置文件的“复制到输出目录”属性为“始终复制”。
  • 部署SSIS包到Azure SSIS目录时,这些文件会随包一起部署到运行时节点的工作目录。
  • 修改脚本任务中的调用路径为相对路径,比如.\WinSCP.exe,即可直接调用,无需额外部署操作。

内容的提问来源于stack exchange,提问作者MAHESH MUSHYAM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 11:55:57