SSIS作业在SQL Server2008正常,2017报错0x80070057,求解决方案
解决方案:SSIS 2008迁移至2017后Script Task创建失败(错误0x80070057)
这个问题我之前帮客户处理过好几次,本质是SSIS 2017对Script Task的XML定义和运行环境要求比2008更严格,迁移时旧配置的兼容性问题触发了这个"参数不正确"的错误。给你几个针对性的解决步骤:
重新编辑Script Task,升级脚本目标版本
- 用SQL Server Data Tools 2017(或更高版本)打开你的SSIS项目,找到那个名为"Email"的Script Task。
- 双击打开Script Task Editor,切换到「Script」选项卡:
- 确认
ScriptLanguage选择的是对应新版本的语言(比如C# 2017或VB.NET 2017); - 点击「Edit Script」按钮,SSIS会自动升级脚本的项目文件、引用和目标框架版本;
- 确认
- 保存脚本后重新部署SSIS作业,再尝试执行。
检查并修正Script Task的XML配置参数
有时候迁移后,Task的XML定义里会残留过时的参数或格式错误:- 右键Script Task,选择「View Code」查看底层XML,或者直接打开SSIS包的XML源码;
- 搜索
<DTS:Task>节点,找到类型为Microsoft.Script.Task的部分,重点检查:- 所有参数的名称、类型是否符合SSIS 2017规范,有没有拼写错误或已被移除的旧属性;
<ScriptTaskProject>节点里的项目路径、组件引用是否指向SQL Server 2017的对应路径,而非旧的2008路径。
重新创建Script Task并迁移逻辑
如果上面的方法都没效果,最稳妥的方式是彻底重建:- 在SSIS 2017环境中新建一个Script Task,命名为"Email";
- 把旧Script Task里的脚本代码完整复制过来,重新配置所有输入输出参数、连接管理器等依赖项;
- 替换掉原包中的旧Task,重新部署执行。这种方式能完全规避旧版本XML配置的兼容性问题。
检查SSIS运行时的权限与组件完整性
最后确认基础环境没问题:- 确保SQL Server 2017的SSIS服务账号拥有访问邮件服务器、脚本依赖资源的足够权限;
- 确认已完整安装SQL Server 2017的Integration Services组件和对应版本的SSDT,缺失核心组件也可能导致Task创建失败。
内容的提问来源于stack exchange,提问作者Hao
相关产品推荐
相关产品推荐

