繁体   English   中英

SSIS中调试

[英]Debugging in SSIS

如何调试 SSIS package 中的脚本任务中编写的 .NET 代码? 开发环境允许放置断点,但在调试时不会像在常规 .NET 编程中那样将我带到代码中。

另外,我不知道如何将 SSIS package 变量添加到调试手表 window?

目前我想到的一件事是使用 msgbox。 但这并不能替代使用开发环境进行的全面调试。 任何帮助表示赞赏。 谢谢。

注意:如果您在 x64 上运行,则必须将项目 (SSIS) 调试属性 Run64BitRuntime 更改为 false。

之后,您将能够在 .net 中调试脚本任务,并在脚本中中断代码。

顺便说一句,John Sansom 似乎没有阅读过问题的这一部分:如何调试 SSIS package的脚本任务中编写的 .NET 代码? 它是一个脚本任务,不是正常的SSIS调试。

希望这可以帮助。

在 BIDS 环境中调试 SSIS 包与使用 Visual Studio 不同。

您可能会发现参考Debugging How-To-Topics(SSIS)很有用

如果您已经开发了您自己的自定义组件,即在 Visual Studio 中,那么您应该能够在 Visual Studio 环境中调试该组件的特定功能,然后才能在 BIDS 中使用该组件。

您无法调试构成任何其他内置 SSIS 组件(即 FTP 任务)的内部 .NET 代码,因此我怀疑自定义组件会有所不同。

您可以通过在源代码中的适当位置嵌入对Debugger.Break的调用,将调试器附加到(几乎)您正在为其编写 .NET 代码的任何进程。

引用 MSDN:

如果没有附加调试器,则会询问用户是否要附加调试器。 如果是,则启动调试器。 如果附加了调试器,调试器会收到用户断点事件的信号,并且调试器会暂停进程的执行,就像遇到了调试器断点一样。

我用它来调试各种东西,包括嵌入在 SSIS 中的 C# 代码。

更新:修改了措辞,因为这不再是一种理论技术,而是我使用过的一种。

我认为 SSIS 确实支持并在脚本任务中的断点处停止(在控制流中)。 它不支持脚本转换(在数据流中)。 这确实是非常不幸的限制。

当您在断点处停止时,SSIS 在手表 window 中显示变量值。 我不确定脚本断点,但 SSIS 断点(预执行等)可以工作。 但是你需要一个断点——你不能在没有断点的随机时刻观察变量值。

尽管数据流任务中的脚本组件不允许任何形式的调试,除了定期写入进度等变通方法,消息框 etc

脚本任务控制流项将允许开发人员调试 SSIS 代码

最近发现了这个。 :)

确保您还运行完整的 package。 package 断点的调试器在您启动之前不会启动。

调试脚本任务的工作方式类似。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM