C# 如何检索SSIS进程任务的标准输出和错误
上下文: 我有一个SSIS包,它通过执行进程任务调用C#控制台应用程序 C#程序使用C# 如何检索SSIS进程任务的标准输出和错误,c#,ssis,C#,Ssis,上下文: 我有一个SSIS包,它通过执行进程任务调用C#控制台应用程序 C#程序使用Console.Write(“xxx”)和控制台。错误。写入(“yyyy”)以判断它是否正常工作 static void Main(string[] args) { try { //do stuff Console.Write("xxx");
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]
变量,并将我的变量值设置为我先前声明的变量的其他名称。