如何在SSIS中调试脚本组件

问题描述 投票:0回答:6

这很简单,但我无法让它发挥作用,我在很多地方读到了很多解决方案,但没有一个对我有用。我怎样才能做到这一点?

注意

我在代码中放置了一个断点并运行了整个包,但它仍然不起作用。

visual-studio-2008 sql-server-2008 ssis
6个回答
31
投票

Script组件不支持使用断点。因此,您无法在包运行时单步执行代码并检查值。您可以通过以下方法监控Script组件的执行情况

使用

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


6
投票

断点仅在脚本中起作用 任务 在脚本中不起作用 组件


6
投票

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

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


1
投票

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


1
投票

对于 SSIS 2008,您只能调试脚本 Task 而不是脚本 Component,正如 Joost 已经指出的那样,我已经成功使用

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

然后我使用 https://learn.microsoft.com/en-us/sysinternals/downloads/debugview 中的 ol Dbgview.exe 捕获此输出。我设置了“编辑”->“过滤器”->“包含 SSIS*”,然后如果您要将其保留在桌面上,请将“调试视图历史记录深度”设置为 99999,否则它将填满日志,没有大小限制!


0
投票

现在可以通过在脚本组件的代码中放置断点来调试脚本组件,并且已将其添加到 Microsoft 的文档中 https://learn.microsoft.com/en-us/sql/integration-services/extending- packages-scripting/data-flow-script-component/coding-and-debugging-the-script-component?view=sql-server-ver16&redirectedfrom=MSDN 如 vamsi 的评论中所指定。

© www.soinside.com 2019 - 2024. All rights reserved.