IntegrationServices запускает только часть пакета служб SSIS - PullRequest
1 голос
/ 26 мая 2019

У меня есть пакет служб SSIS, который выглядит следующим образом:

enter image description here

Он отлично работает через Visual Studio или DTEXEC в командной строке.Я развернул его, как показано здесь:

enter image description here

Когда я подключаюсь к нему и запускаю его через C # в моей WinForm, кажется, что он запускает только TruncateЗадача стола.Я возвращаюсь и говорю, что это успешно, но он запускал только часть пакета, который я НЕ называю успешным.

Вот код, который я использую для подключения и запуска:

// Create a connection to the server
string sqlConnectionString = "Data Source=BSQL_01;Initial Catalog=master;Integrated Security=SSPI;";
SqlConnection sqlConnection = new SqlConnection(sqlConnectionString);
MessageBox.Show("Created Connection");
// Create the Integration Services object
IntegrationServices integrationServices = new IntegrationServices(sqlConnection);

// Get the Integration Services catalog
Catalog catalog = integrationServices.Catalogs["SSISDB"];
MessageBox.Show("Created Catalog");

// Get the folder
CatalogFolder folder = catalog.Folders["PORGImport"];
MessageBox.Show("Created Folder");

// Get the project
ProjectInfo project = folder.Projects["PORGImport"];
MessageBox.Show("Created Project");

// Get the package
PackageInfo package = project.Packages["PORGImport.dtsx"];
MessageBox.Show("Created Package");

// Run the package
long executionIdentifier = package.Execute(false, null);

ExecutionOperation executionOperation = integrationServices.Catalogs["SSISDB"].Executions[executionIdentifier];

while (!executionOperation.Completed) {
    System.Threading.Thread.Sleep(5000);
    executionOperation.Refresh();
    MessageBox.Show("Running...");
}

if (executionOperation.Status == Operation.ServerOperationStatus.Success) {
    Console.WriteLine("Success");
    MessageBox.Show("Success");

} else if (executionOperation.Status == Operation.ServerOperationStatus.Failed) {
    Console.WriteLine("Failed");
    MessageBox.Show("Failed");

} else {
    Console.WriteLine("Something Went Really Wrong");
    MessageBox.Show("Oh Crap");
}

Я посмотрел пакет на SQL Server и вижу эту ошибку:

Цикл покупки файла: Предупреждение: перечислитель «Для каждого файла» пуст.Перечислитель «Для каждого файла» не нашел ни одного файла, соответствующего шаблону файла, или указанный каталог был пустым.

Что не имеет смысла для меня, так как все это выполняется с моего компьютера, у меня естьдоступ к каталогу, он отлично работает через командную строку и через Visual Studio.

Environment

  • MS SQL Server 2014 (v12.0.5546.0)
  • MS Visual Studio 15 (v14, обновление 3)

1 Ответ

0 голосов
/ 26 мая 2019

Убедитесь, что значения переменных присвоены

На снимках экрана видно, что вы используете выражения для каждого контейнера цикла, поскольку в верхнем левом углу отображается метка fx. Убедитесь, что вы присвоили переменную перед выполнением пакетов.

...