我有一个看起来运行良好的脚本任务,但无论我在里面放什么都没有被执行。我尝试了各种方法:通过内置的 SSIS 日志记录机制进行日志记录,通过附加变量和 SQL 命令任务进行日志记录,但我永远无法弄清楚出了什么问题。我试图放置断点,它在调试过程中不会中断。
这是带有 SQL 2016 的 VS 2015。此问题仅在部署在其中一个 SQL Server上时发生。我以前在该服务器上完全没有问题。我在不同的 SQL 框(相同的配置)上部署了相同的包,它按预期运行。
编辑:为了更好地澄清问题,我启动了一个新的 SSIS 包,其中只有 3 个脚本任务:
测试任务:
public void Main()
{
// TODO: Add your code here
Dts.TaskResult = (int)ScriptResults.Failure;
}
Run Code Online (Sandbox Code Playgroud)
测试任务完成后,如果测试成功,则将其链接到“成功任务”,如果失败则链接到“失败任务”。
在 VS 上,测试任务按预期失败并转到失败任务。但是一旦部署它就停止工作。
您可以检查 3 件事:
(1)TargetServerVersion属性
检查您是否选择了合适的TargetServerVersion房产
GoTo Project Properties >> Configuration Properties >> TargetServerVersion
Run Code Online (Sandbox Code Playgroud)
(2)ForceExecutionResult属性值
单击Fail Task并按F4显示属性选项卡,检查是否ForceExecutionResult设置为False。
(3)以32位模式运行
尝试在 32 位模式下运行该包:
GoTo Project properties >> Debugging >> Run64BitRuntime = False
Run Code Online (Sandbox Code Playgroud)