我已经创建了一个SSIS包,它在从SQL Server数据工具启动时运行顺畅(我在我的PC上使用了带有SQL Server 2005 Developer Edition的SSDT 2015),但在运行时只在日志中出现以下行它来自.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
,但它没有帮助。
我做错了什么?有没有办法至少得到一些关于包失败原因的正确数据?
答案 0 :(得分:0)
解决了,问题。结果证明:
SSDT 2015不能用于开发SSIS 2005的软件包(仅适用于SSIS 2012及更高版本)。
我的项目中引用了Microsoft.SqlServer.ManagedDTS
DLL的错误版本(SSIS 2014版)。我引用了SSIS 2005的DLL,一切正常。