gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:30:55 25 4
gpt4 key购买 nike

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

enter image description here

C# 程序使用 Console.Write("xxx");Console.Error.Write("yyyy"); 来判断它是否正常工作。

static void Main(string[] args)
{
try
{
//do stuff
Console.Write("xxx");
}
catch (Exception e)
{
Console.Error.Write("yyyy");
}
}

我的问题:如何在ssis中抓取流程任务的输出?

我尝试过的:

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

enter image description here

当我定义字符串变量时,在处理任务完成后两者都是空的。当我定义对象变量时,我尝试运行一个脚本任务并将值转换为字符串数组,但它抛出了一个无效的转换异常。

我错过了什么?我无法修改真正的 C# 程序来改变它的记录方式。

最佳答案

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

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

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

使用 @[User::l_output] 的值作为变量名以用于 standardOutput。

不是:使用这个变量来捕获输出

所以我有 2 个解决方案来捕获我的过程的输出:

  1. 在流程任务配置中直接使用@[User::l_output](不是在espression标签中)
  2. 在 StandardOutputVariable 表达式中使用 @[User::l_output] 变量并将我的变量值设置为我之前声明的变量的其他名称。 enter image description here

关于c# - 如何检索 SSIS 进程任务的标准输出和错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48881793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com