d29*_*907 3 ssis execution extract-error-message ssis-2012
我在sis的一个项目中遇到了这个问题。我不得不将原始项目分成不同的程序包,因为这太大了,有时可能会引起内存问题。因此,为了链接不同的程序包,我使用“执行程序包任务”相互引用。如果我直接从SSIS执行该程序包,则可以完美运行,这没有问题。但是,如果我使用调度程序对执行时间进行编程,则会收到以下错误消息:
错误:2015-09-22 14:54:37.98代码:0xC00220E6源:执行包任务说明:没有要引用的项目。结束错误错误:2015-09-22 14:54:37.99代码:0xC0024107源:执行程序包任务说明:任务验证期间出错。结束错误DTExec:程序包执行返回DTSER_FAILURE(1)。
我想知道项目及其执行会发生什么。
问候
我不确定您使用的是什么调度程序,也不知道它是如何配置的,但是您可以通过使用DTExec模拟调度程序来调试自己的方式。听起来您已经越过了Setupand Execution Method(请参见下面的定义)。
这是摘要。
Project References,对于Execution Method,使用Project/Package。External References,对于执行方法,请使用File。(这听起来像你正在使用的组合Project References和File,进而发送There is no project to reference错误关子包)。
在SSDT中打开您的父程序包,然后双击一个子程序包。它看起来应该像这样:

此设置意味着您需要通过DTExec通过Project / Package方法执行包。因此,构建您的项目-这将生成一个ispac文件。并通过dtexec执行,它看起来像:
dtexec /Proj Path\To\MyProject.ispac /Pack Path\To\The\ParentPackage.dtsx
注意:如果您在参数中指定dtsproj文件而不是ispac文件/Proj,则会收到File contains corrupted data错误消息!
在SSDT中打开您的父程序包,然后双击一个子程序包。将其更改为如下所示:

这可以通过以下步骤完成:
1.将引用类型更改为外部引用
2.将位置更改为文件系统(SQL Server是另一种选择)
3.选择<New connection...>以创建新文件连接以运行子包(或SQL Server连接)
此设置意味着您现在可以使用File方法,这可能是您尝试执行程序包的方式。
dtexec /f Path\To\My\ParentPackage.dtsx