2009-03-17 9 views
20

Wie debugge ich .NET-Code, der innerhalb einer Skriptaufgabe in einem SSIS-Paket geschrieben wurde? Die Entwicklungsumgebung erlaubt das Platzieren eines Breakpoints, führt mich jedoch nicht zum Code, wie es bei der regulären .NET-Programmierung beim Debuggen der Fall wäre.Debugging in SSIS

Auch ich bin ratlos zu verstehen, wie die SSIS-Paketvariablen zum Debug Watch-Fenster hinzufügen?

Derzeit war eine Sache, die ich dachte, war die Verwendung von msgbox. Aber das ist kein Ersatz für ein vollwertiges Debugging mit der Entwicklungsumgebung. Jede Hilfe wird geschätzt. Vielen Dank.

Antwort

9

Das Debuggen von SSIS-Paketen in der BIDS-Umgebung ist nicht das gleiche Ballspiel wie das Arbeiten mit Visual Studio.

Sie finden es vielleicht nützlich, um die Referenz Debugging How-To-Topics(SSIS)

zu konsultieren Wenn Sie Ihre ganz individuelle Komponente entwickelt haben, dh innerhalb von Visual Studio, dann sollten Sie in der Lage sein, die spezifische Funktionalität dieser Komponente innerhalb des Visual zu debuggen Studio-Umgebung, bevor die Komponente für die Verwendung in BIDS verfügbar gemacht wird.

Sie können den internen .NET-Code, der eine der anderen integrierten SSIS-Komponenten (d. H. Die FTP-Task) bildet, nicht innerhalb von BIDS debuggen. Daher bezweifle ich, dass eine benutzerdefinierte Komponente anders sein wird.

+0

http://msdn.microsoft.com/en-us/library/ms140033.aspx So unbequem. Ja, BIDS ist wirklich nicht wie VS. – Steam

1

Ich denke, SSIS unterstützt und stoppen auf Haltepunkt in Skriptaufgabe (in der Ablaufsteuerung). Es unterstützt es nicht für die Skriptumwandlung (im Datenfluss). Das sind sehr bedauerliche Einschränkungen.

SSIS zeigt Variablenwerte im Überwachungsfenster an, wenn Sie an einem Haltepunkt anhalten. Ich bin mir nicht sicher über den Script Breakpoint, aber die SSIS Breakpoints (On-Pre-Execute, etc) funktionieren. Aber Sie brauchen einen Haltepunkt - Sie können den Variablenwert nicht im zufälligen Moment ohne Haltepunkt beobachten.

29

Hinweis: Wenn Sie auf x64 ausführen, müssen Sie das Projekt (SSIS) Debug-Eigenschaft Run64BitRuntime auf false ändern.

Danach können Sie eine Skriptaufgabe in .net debuggen und Code im Skript brechen.

Durch die Art und Weise John Sansom Dont scheint diesen Teil der Frage gelesen zu haben: Wie Debuggen ich Code .NET geschrieben in einer Skript Aufgabe in einem SSIS-Paket? Es ist eine Skriptaufgabe, nicht normales SSIS-Debugging.

Hoffe, das hilft.

+7

Ändern der Debug-Eigenschaft Run64BitRuntime auf false war die Antwort. Schön. +1 – Deano

+0

Nachdem ich mir für einen Tag die Haare ausgerissen hatte, war dies die Lösung. Ich habe von Geboten 2013 zu Geboten 2015 aufgerüstet. Ich denke, das Upgrade muss die Eigenschaft auf 64 Bit zurückgesetzt haben. – Simon

1

Sie können einen Debugger an (fast) jeden Prozess anfügen, für den Sie .NET-Code schreiben, indem Sie einen Aufruf an die entsprechende Stelle in Ihrer Quelle an Debugger.Break einbetten.

Zitiert MSDN:

Wenn kein Debugger angeschlossen ist, können Benutzer gefragt, ob sie einen Debugger anhängen möchten. Wenn ja, wird der Debugger gestartet. Wenn ein Debugger angefügt ist, wird dem Debugger ein Benutzerhaltepunkt-Ereignis signalisiert, und der Debugger unterbricht die Ausführung des Prozesses genau so, als ob ein Debugger-Haltepunkt getroffen worden wäre.

Ich habe dies verwendet, um alle möglichen Dinge zu debuggen, einschließlich C# -Code in SSIS eingebettet.

Aktualisiert: Geänderte Formulierung als dies ist nicht mehr eine theoretische Technik, aber eine, die ich verwendet habe.

+0

Das Hinzufügen dieser Zeile hat keine Auswirkung auf eine SSIS-Skript-Task. – DaveRead

+1

Der zugehörige Aufruf 'Debugger.Break' funktioniert zwar - aber manchmal stößt man auf der IL-Ebene anstatt auf C# auf Debugging. – Bevan

+0

Das hat perfekt für mich funktioniert! Danke Bevan. –

0

wenn die Skriptkomponente im Datenfluss-Task jeder Form nicht zulassen, dass die Fortschritte der Debuggen andere als Abhilfen wie das Schreiben regelmäßig, Message-Boxen usw.

Das Script Task Ablaufsteuerung Artikel der Entwickler der SSIS-Code debuggen können

Dies kürzlich gefunden. :)

0

Stellen Sie sicher, dass Sie auch das volle Paket ausführen. Der Debugger für die Paketunterbrechungspunkte tritt erst ein, wenn Sie dies tun.

Das Debuggen von Skriptaufgaben funktioniert in ähnlicher Weise.