これは必ずしも問題を修正する方法についての答えではありませんが、「スクリプトタスクの失敗:例外がスローされました...」よりも適切なエラーメッセージを取得するようにスクリプトタスクを変更する方法についての答えです。
スクリプトタスクは常にtry-catchでラップしてから、例外メッセージをスクリプトタスクから発生させます。
public void Main()
{
try
{
//Your code here
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception ex)
{
Dts.Events.FireError(-1, "", ex.Message, String.Empty, 0);
Dts.TaskResult = (int)ScriptResults.Failure;
}
}
特にデプロイされたSSISパッケージでは、スクリップタスクでエラーが発生した場合、失敗した理由が明確に示されるとは限らず、不可解なエラーメッセージが表示されるため、これは常に課題です。上記のコードは、例外をスローしたものをキャプチャし、それが何であったかを統合サービスにバブルバックします。