Я разработал пакет ssis, и у меня есть скрипт, который выбирает несколько текстовых команд из файла .txt, сохраняет их в переменных, и я использую эти переменные, чтобы увидеть, что делать дальше и какой дфт выполнить.
Когда я захожу в файл .dtsx -> щелчок правой кнопкой мыши -> выполнить ->, я получаю сообщение об ошибке «Исключение было сгенерировано целью вызова».
![enter image description here](https://i.stack.imgur.com/ez43L.png)
Однако, когда я прекращаю запуск пакета и пытаюсь повторно выполнить его, он запускается успешно.
Я попытался развернуть это в каталогах служб Integration Services, и он выдает ту же ошибку, которую я вижу в файлах отчетов
Ошибка задачи скрипта: исключение было выдано целью вызова
varERMLoadTxt
содержит путь к текстовому файлу, который читает потоковая программа
public void Main()
{
// TODO: Add your code here
string path = Dts.Variables["User::varERMLoadTxt"].Value.ToString();
using (StreamReader sr = File.OpenText(path))
{
string line = File.ReadAllText(path);
string[] lines = line.Split(',');
if(lines[0].Equals("load", StringComparison.CurrentCultureIgnoreCase))
Dts.Variables["User::varIsLoad"].Value = true;
else if (lines[0].Equals("update", StringComparison.CurrentCultureIgnoreCase))
Dts.Variables["User::varIsUpdate"].Value = true;
Dts.Variables["User::varCommand"].Value = lines[0].ToString();
Dts.Variables["User::varAnalysisDate"].Value = lines[1].ToString();
sr.Close();
}
Dts.TaskResult = (int)ScriptResults.Success;
}
enum ScriptResults
{
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
};