Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检索SSIS进程任务的标准输出和错误_C#_Ssis - Fatal编程技术网

C# 如何检索SSIS进程任务的标准输出和错误

C# 如何检索SSIS进程任务的标准输出和错误,c#,ssis,C#,Ssis,上下文: 我有一个SSIS包,它通过执行进程任务调用C#控制台应用程序 C#程序使用Console.Write(“xxx”)和控制台。错误。写入(“yyyy”)以判断它是否正常工作 static void Main(string[] args) { try { //do stuff Console.Write("xxx");

上下文: 我有一个SSIS包,它通过执行进程任务调用C#控制台应用程序

C#程序使用
Console.Write(“xxx”)
控制台。错误。写入(“yyyy”)以判断它是否正常工作

static void Main(string[] args)
        {
            try
            {
                //do stuff
                Console.Write("xxx");
            }
            catch (Exception e)
            {
                Console.Error.Write("yyyy");
            }
        }
我的问题: 如何在ssis中捕获流程任务的输出

我尝试过的:

使用控制流中的局部变量在流程任务表达式中设置StandardOutputVariable和StandardErrorVariable

当我定义字符串变量时,这两个变量在流程任务完成后都是空的。 定义对象变量时,我尝试运行脚本任务并将值转换为字符串数组,但它引发无效转换异常

我错过了什么?
我不能修改真正的C程序来改变它的日志记录方式。

我自己通过实验找到了解决方案

我缺少的是standardErrorVariable的表达式值是如何工作的

当我用变量填充standardErrorVariable表达式值时,行为是:

使用@[User::l_output]的值作为变量名,用于标准输出。

不是:
使用此变量捕获输出

因此,我有两个解决方案来捕获流程的输出:

  • 在流程任务配置中直接使用
    @[User::l_output]
    (不在espression选项卡中)
  • 在StandardOutputVariable表达式中使用
    @[User::l_output]
    变量,并将我的变量值设置为我先前声明的变量的其他名称。