2009-03-17 29 views
20

SSISパッケージのスクリプトタスク内に記述された.NETコードをデバッグするにはどうすればよいですか?開発環境ではブレークポイントを置くことができますが、デバッグ中の通常の.NETプログラミングと同じように、コードに私を連れて行くことはありません。SSISのデバッグ

また、私はデバッグウォッチウィンドウにSSISパッケージ変数を追加する方法を理解するための損失で午前?

現在、私が想像したことの1つはmsgboxの使用でした。しかし、開発環境を使った本格的なデバッグに代わるものではありません。どんな助けもありがとうございます。ありがとう。 BIDS環境内

答えて

9

デバッグSSISパッケージは、Visual Studioでの作業と同じボールゲームではありません。

あなたは、Visual Studio内から、つまり、非常に独自のカスタム・コンポーネントを開発している場合、あなたは、Visual以内に、そのコンポーネントの特定の機能をデバッグすることができるはず、それは便利なリファレンスにDebugging How-To-Topics(SSIS)

を相談するかもしれませんBIDS内でコンポーネントを使用できるようにする前に、スタジオ環境を使用してください。

あなたは、私がカスタムコンポーネントは何が違うのだろう疑うようBIDS内SSISコンポーネント(すなわち、FTPタスク)に建てられた他のいずれかを構成する内部.NETコードをデバッグすることができません。

+0

http://msdn.microsoft.com/en-us/library/ms140033.aspxとても不便です。はい、BIDSはVSのようなものではありません。 – Steam

1

SSISはスクリプトタスク(コントロールフロー内)でブレークポイントをサポートし、停止すると思います。スクリプト変換(データフロー内)ではサポートされていません。それは本当に残念な制限です。

SSISは、ブレークポイントで停止するときにウォッチウィンドウに変数値を表示します。スクリプトのブレークポイントについてはわかりませんが、SSISのブレークポイント(実行前など)は機能します。しかし、あなたはブレークポイントを必要とします - あなたはブレークポイントなしでいつでも可変の値を見ることができません。

29

注:x64の上で実行している場合はfalseにプロジェクト(SSIS)デバッグpropertie Run64BitRuntimeを変更する必要があります。

その後は、.NETでスクリプトタスクをデバッグし、スクリプト内のコードを破ることができるようになります。道ジョン・サンソムことで

質問のこの部分を読んでいるように見えるいけない: はどのように私はSSISパッケージにスクリプトタスク内 を書かれた.NETコードをデバッグするのですか? スクリプトタスクで、通常のSSISデバッグではありません。

これが役に立ちます。

+7

DebugプロパティRun64BitRuntimeをfalseに変更することが答えでした。良いですね。 +1 – Deano

+0

これは解決策だった日のうちに私の髪の毛を裂いた後、2013年の入札から2015年の入札にアップグレードしました。アップグレードでは、プロパティを64ビットにリセットする必要があります。 – Simon

1

あなたは、あなたのソース内の適切な時点でDebugger.Breakへの呼び出しを埋め込むことによって、.NETのコードを書いているいる(ほとんど)任意のプロセスにデバッガをアタッチすることができます。 MSDN引用

何デバッガがアタッチされていない場合、彼らはデバッガをアタッチする場合

、ユーザーが求められます。 YESの場合、デバッガが起動します。デバッガが接続されている場合、デバッガにはユーザブレークポイントイベントが通知され、デバッガはブレークポイントがヒットしたかのようにプロセスの実行を中断します。

私はこれを使用して、SSISに埋め込まれたC#コードを含むあらゆる種類のデバッグを行いました。

:これはもはや理論的な技術ではなく、私が使用した言い回しです。

+0

この行を追加すると、SSISスクリプトタスクには何の効果もありません。 – DaveRead

+1

関連するコール 'Debugger.Break'は機能しますが、C#の代わりにILレベルでデバッグが行われることがあります。 – Bevan

+0

これは私にとって完璧に機能しました! Bevanに感謝します。 –

0

データフロータスクでスクリプトコンポーネントは、定期的に進捗状況を書くのような回避策以外のデバッグの任意のフォームを許可しませんが、メッセージボックスなど

スクリプトタスク制御フロー項目は、開発者がSSISのコードをデバッグすることができます

最近発見されました。 :)

0

フルパッケージも必ず実行してください。あなたがするまで、パッケージのブレークポイントのデバッガは起動しません。

スクリプトタスクのデバッグも同様の方法で動作します。