无Visual Studio环境下SSIS包Script Task组件运行异常(不验证不报错)
核心解决步骤
核对.NET框架版本兼容性
SSIS 2017的Script Task默认依赖.NET Framework 4.6.1,确认你本地开发时Script Task的目标.NET框架版本是否与服务器一致。若代码使用了更高版本的.NET特性,服务器无对应框架会导致验证静默失败。在本地Visual Studio中打开Script Task,通过项目属性将目标框架改为4.6.1,重新编译后部署。确认服务器SSIS组件完整性
服务器未装Visual Studio,但必须安装完整的SQL Server Integration Services服务组件(不能仅装客户端工具)。在服务器的“程序和功能”中找到SQL Server 2017,检查是否包含Integration Services,缺失则重新安装对应组件。查看SSISDB详细执行日志
作业日志通常不会显示Script Task的验证细节,登录SSMS展开Integration Services Catalogs > SSISDB > 目标项目 > 执行记录,找到对应执行实例,查看“详细信息”标签下的验证阶段日志,里面会明确记录验证失败的具体原因(如依赖缺失、代码语法错误、权限不足)。检查作业执行账户权限
作业运行账户需要具备访问Script Task依赖资源(文件、数据库连接等)的权限,同时要有读取SSISDB包资源的权限。可临时用本地管理员账户测试运行,排除权限问题。重新编译部署Script Task
本地打开Script Task编辑器,确认代码能正常编译(无编译错误),保存后重新生成整个SSIS项目,再重新部署到SSISDB,避免部署时遗漏编译后的代码文件。强制Script Task验证失败触发报错
在Script Task的属性中,将FailPackageOnFailure和FailParentOnFailure设为True,这样验证不通过时会直接触发包失败,便于快速定位问题(默认可能为False,导致验证失败但包继续执行)。
内容的提问来源于stack exchange,提问作者poojitha

