2011-06-22 51 views
20

這很簡單,但我無法使其工作,並且在很多地方閱讀了很多解決方案,但沒有爲我工作。我怎樣才能做到這一點?如何在SSIS中調試腳本組件

注意

我把一個破發點在我的代碼並運行整個包,但它仍然沒有奏效。

回答

26

腳本組件不支持使用斷點。因此,在程序包運行時,無法逐句通過代碼並檢查值。您可以使用以下方法監視腳本組件的執行情況:

中斷執行並使用System.Windows.Forms namespace中的MessageBox.Show()方法顯示模態消息。 (在完成調試過程後刪除此代碼。)

引發信息性消息,警告和錯誤的事件。 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

腳本任務支持在調試過程中使用斷點,但腳本組件不支持斷點檢查:http://msdn.microsoft.com/en-us/library/ms136033.aspx – vamsi

+2

更改SSIS項目允許32位調試,我能夠用斷點調試腳本任務。儘管在代碼中有關於引發錯誤的信息是很好的。 – Tequila

+0

斷點可在腳本任務和腳本組件 –

1

我知道MS博客說,斷點不腳本運行,但MSDN似乎表明,他們這樣做。您是否嘗試過遵循MSDN上的指示?我在輸出注意到下面的消息「無法下運行時調試腳本任務 - 只有

+0

中工作,但它對我無效 – Jorge

+1

調試SSIS腳本組件僅在SSIS 2012上可用。在2008--只有腳本任務可以調試。 – HiperiX

5

斷點在腳本任務沒有腳本組件

+0

斷點在腳本任務和腳本組件中都可以工作 –

6

我的問題是使用64位運行時的工作Integration Services運行時的64位版本「。

這可以通過運行32位運行時(例如暫時)來解決,如here所述。

0

對於2008 SSIS,你只能調試腳本任務沒有腳本組件使用

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

然後我捕獲此輸出,如已被Joost的注意,我已經成功來自https://docs.microsoft.com/en-us/sysinternals/downloads/debugview的好的Dbgview.exe。我設置了編輯 - >過濾器 - >包含SSIS *,然後如果您要在桌面上保留這個設置,請將調試視圖歷史深度設置爲99999,否則它將填滿日誌而沒有大小限制!