在C#Script Task中终止当前的SSIS包,没有异常/错误

时间:2014-09-05 16:14:18

标签: c# ssis

我正在尝试从脚本任务中停止包执行。根据{{​​3}},只有RunningPackage.Stop();才能正常工作,但我收到错误“非静态字段,方法或属性Microsoft.SqlServer.Dts.Runtime.RunningPackage需要对象引用。以这种方式停止()“

    public void Main() 
    {
        RunningPackage.Stop(); // Object reference error.
    }

所以我尝试了以下内容:

    public void Main() 
    {
        RunningPackage package = new RunningPackage();
        package.Stop();       
    }

这样我就没有将带下划线的代码作为错误,但是在保存编辑过的脚本时,SSIS说“包中包含的脚本有编译错误”using Microsoft.SqlServer.Dts.Runtime;已导入。

有什么问题?有没有其他方法可以在C#中完全停止当前包而不会出错?

1 个答案:

答案 0 :(得分:1)

在我看来,我看到一个控制流, N 任务相关联,一些并行,一些串行。 X 事件发生了,现在我们需要停下来,有点优雅。

可能是您在每个可执行文件'Disabled属性上设置一个Expression,该属性绑定到名为PleaseStop的包级别布尔变量。它的默认值是False,但是当X发生时,它变为True,然后使一切都被禁用。

这不会阻止飞行中的东西,但它会阻止任何新的东西开始。