SQL Server 2016/2017 SSIS包FTP任务错误日志差异原因咨询
问题原因分析
这种SSIS FTP任务日志的差异,核心原因是SQL Server 2017对SSIS FTP任务的日志输出做了原生增强,同时也需要排查几类配置是否存在差异:
一、版本迭代的原生功能改进
SQL Server 2017的SSIS组件(包括FTP任务)在错误日志机制上做了优化:
- 2017版本的FTP任务会主动捕获并返回FTP服务器的原始交互响应(比如你看到的
200 Type set to I.、553 /filename.csv: Permission denied这类FTP状态码信息),将底层FTP操作的细节直接输出到执行日志中。 - SQL Server 2016版本的FTP任务仅返回通用错误提示(
Unable to send files using "FTP Connection Manager"),不会解析并输出FTP服务器的交互细节,这是2016版本SSIS FTP任务的设计局限。
这属于微软在SSIS 2017版本中针对任务日志可读性的官方优化,是版本本身的差异,而非隐藏设置导致。
二、需要排查的潜在配置差异
虽然你提到包和任务级别未设置错误处理,但仍需确认以下配置是否存在差异:
- SSIS日志提供者级别:检查两个环境中SSIS包使用的日志提供者(如SQL Server日志提供者)的日志级别。2016环境是否设置了更低的日志级别(比如仅记录“错误”而非“详细信息”),导致FTP交互细节未被捕获。
- SQL Server Agent作业日志配置:如果包通过Agent作业执行,检查两个作业步骤的“高级”选项卡:2016作业是否仅启用了基础日志输出(如仅输出到文件且未勾选“包含详细信息”),而2017作业启用了更详尽的日志输出。
- 包源码的隐藏参数:可以查看两个包的XML源码,确认是否存在针对FTP任务的内部日志控制参数(这类参数通常不通过SSDT界面暴露,但极少数情况下会影响日志输出)。
总结
优先考虑SQL Server 2017对SSIS FTP任务的原生日志增强,再通过上述配置排查确认是否存在额外的日志控制差异。
内容的提问来源于stack exchange,提问作者Patrick
相关产品推荐
相关产品推荐

