Пакет служб SSIS завершается с ошибкой только при включении OnPreValidate в журналах при запуске из приложения.NET

Я создал пакет служб SSIS, который работает без проблем при запуске из средств данных SQL Server (я использую SSDT 2015 с SQL Server 2005 Developer Edition на своем ПК), но при запуске его из.NET не удается выполнить только следующую строку в журналах. приложение:

Fields: event,computer,operator,source,sourceid,executionid,starttime,endtime,datacode,databytes,message
OnPreValidate,<my_computer>,<my_operator>,Test,{E7D40776-05B7-4D1D-8D78-8C87E722E596},{755AD039-B5B4-42B0-9ECA-E396054DEB2F},28.10.2016 14:44:06,28.10.2016 14:44:06,0,0x,

Я использую следующий код для вызова пакета из моего приложения.NET (я просто скопировал пакет SSIS в проект.NET из проекта SSIS и указал его для копирования в выходной каталог, чтобы я мог вызвать его из файловой системы):

public void Execute(string filePath, DateTime period)
{
    var pkg = app.LoadPackage(filePath, null);
    var variables = pkg.Variables;
    variables["Period"].Value = period;
    var pkgResults = pkg.Execute(null, variables, null, null, null);
}

Единственная ссылка, относящаяся к моей проблеме, я могу найти, это https://social.msdn.microsoft.com/Forums/sqlserver/en-US/75e4d6fc-3b6f-4ca1-bf12-e823076325cd/package-fails-after-onprevalidate-but-not-in-bids?forum=sqlintegrationservices Я пытался переключить уровень защиты пакетов на DontSaveSensitiveData, но это не помогло.

Что я делаю неправильно? Есть ли способ, по крайней мере, получить правильные данные о том, почему происходит сбой пакета?

1 ответ

Решение

Решена проблема. Оказалось, что:

  1. SSDT 2015 нельзя использовать для разработки пакетов для SSIS 2005 (только для SSIS 2012 и выше).

  2. У меня почему-то была неправильная версия Microsoft.SqlServer.ManagedDTS DLL упоминается в моем проекте (тот, что для SSIS 2014). Я ссылался на DLL для SSIS 2005, и все работает отлично.

Другие вопросы по тегам