如何在SSIS中调试脚本组件

时间:2011-06-22 21:11:30

标签: visual-studio-2008 sql-server-2008 ssis

这很简单,但我不能让它工作,我在很多地方读了很多解决方案,但对我没什么用。我怎么能做到这一点?

注意

我在代码中添加了一个断点并运行整个包,但它仍然无效。

5 个答案:

答案 0 :(得分:28)

脚本组件不支持使用断点。因此,您无法单步执行代码并在程序包运行时检查值。您可以使用以下方法监视脚本组件的执行

使用MessageBox.Show()中的System.Windows.Forms namespace方法中断执行并显示模态消息。 (完成调试过程后删除此代码。)

提升信息性消息,警告和错误的事件。 FireInformation,FireWarning和FireError方法在Visual Studio“输出”窗口中显示事件描述。但是,FireProgress方法,Console.Write方法和Console.WriteLine方法不会在“输出”窗口中显示任何信息。来自FireProgress事件的消息显示在SSIS设计器的“进度”选项卡上。

http://microsoft-ssis.blogspot.com/2011/04/breakpoint-does-not-work-within-ssis.html

答案 1 :(得分:6)

我的问题是使用64位运行时 - 我在输出中注意到以下消息“在64位版本的Integration Services运行时下运行时无法调试脚本任务”。

通过运行32位运行时(例如暂时),可以轻松解决这个问题,如here所述。

答案 2 :(得分:5)

断点仅适用于脚本任务而非脚本组件

答案 3 :(得分:1)

我知道MS Blog说断点在脚本中不起作用,但MSDN似乎表明它们确实存在。您是否尝试过按照MSDN上的说明进行操作?

答案 4 :(得分:-1)

对于SSIS 2008,您只能调试脚本任务而不是Joost已经注意到的脚本组件,我已经成功使用

Trace.Writeline("SSIS .....");

然后我用来自https://docs.microsoft.com/en-us/sysinternals/downloads/debugview的好的Dbgview.exe捕获此输出。我设置了Edit-> Filter-> Include SSIS *然后如果您要将其保留在桌面上,请将Debug View History Depth设置为99999,否则它将填满没有大小限制的日志!