0

変更されたビジュアル スタジオ 2008 (実際には BIDS と呼ばれます) で ac# スクリプト (ETL ツールである SSIS 内) を実行しています。エラーが表示されますが、エラー メッセージではエラーの原因となった行を追跡できません。問題の原因となっている行を特定する方法を教えてください。

使用してみて、キャッチを試してみると、SSIS パッケージがエラーなしで実行されました。しかし、try catch を削除すると、パッケージの実行でエラーが表示されます。とにかく、SSIS に関するこのすべての話は、実際には必要ありません。ここで重要なのは、エラー/例外のキャッチです。

    try
    {            
        //my code here
    }

    catch (Exception e)
    {
        Console.WriteLine("{0} Exception caught.", e);
    }

エラー情報は以下のとおりです -

Error: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at ST_LongCodeNameHere.csproj.ScriptMain.Main()
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
   at Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()
4

2 に答える 2

2

Technet の「スクリプト コンポーネントのコーディングとデバッグ」ページをご覧ください。

特に、「スクリプト コンポーネントのデバッグ」セクションでは、いくつかのヒントが得られる場合があります。

スクリプト コンポーネントは、ブレークポイントの使用をサポートしていません。したがって、パッケージの実行中にコードをステップ実行して値を調べることはできません。次の方法を使用して、スクリプト コンポーネントの実行を監視できます。

  • System.Windows.Forms 名前空間の MessageBox.Show メソッドを使用して、実行を中断し、モーダル メッセージを表示します。(デバッグ プロセスが完了したら、このコードを削除します。)
  • 情報メッセージ、警告、およびエラーのイベントを発生させます。FireInformation、FireWarning、および FireError メソッドは、イベントの説明を Visual Studio 出力ウィンドウに表示します。ただし、
    FireProgress メソッド、Console.Write メソッド、および Console.WriteLine
    メソッドは、出力ウィンドウに情報を表示しません。
    FireProgress イベントからのメッセージは、SSIS デザイナーの [進行状況] タブに表示されます
    。詳細については、「スクリプト
    コンポーネントでイベントを発生させる」を参照してください。
  • イベントまたはユーザー定義のメッセージを、有効なログ プロバイダーに記録します。詳細については、「スクリプト コンポーネントでのログ記録」を参照してください。

ソースまたは変換として構成されたスクリプト コンポーネントの出力を調べたいだけで、データを変換先に保存しない場合は、行数変換でデータ フローを停止し、データ ビューアーをその出力にアタッチすることができます。スクリプト コンポーネント。データ ビューアーの詳細については、「データ フローのデバッグ」を参照してください。

于 2013-10-24T07:20:49.407 に答える
1

画像を探す

すべてのボックスにチェックを入れて、コードを実行してみてください。

于 2013-10-24T07:08:02.897 に答える