Detta är nödvändigtvis inte ett svar på hur man löser problemet, men det är ett svar på hur du kan ändra din skriptuppgift för att få ett bättre felmeddelande än "Script Task Failure:Exception has thrown..."
Vi kommer alltid att slå in våra skriptuppgifter i en try-catch och sedan lyfta undantagsmeddelandet tillbaka från skriptuppgiften:
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;
}
}
Det är alltid en utmaning, speciellt med ett utrullat SSIS-paket, när det uppstår fel på en skriptuppgift får du inte nödvändigtvis en tydlig indikation på varför det misslyckas och du får ett kryptiskt felmeddelande. Ovanstående kod kommer att fånga vad som kastade undantaget och bubbla tillbaka ut till integrationstjänster vad det var.