[英]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.