Пакет служб 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 ответ
Решена проблема. Оказалось, что:
SSDT 2015 нельзя использовать для разработки пакетов для SSIS 2005 (только для SSIS 2012 и выше).
У меня почему-то была неправильная версия
Microsoft.SqlServer.ManagedDTS
DLL упоминается в моем проекте (тот, что для SSIS 2014). Я ссылался на DLL для SSIS 2005, и все работает отлично.