2016-04-21 60 views
0

我有一个包含5个软件包的SSIS项目。SSIS拒绝运行一些软件包

+MyAwesomeProject 
-Package 
-CoolPackage 
-AwesomePackage 
-HyperPackage 
-FinalPackage 

启动包是“包”和一个仅仅是一个持有人,将调用包按顺序先冷静,然后真棒等等。

如果我从Visual Studio运行该项目,它可以完美地工作,并完成我想做的所有事情......完美无缺。没有错误,没有问题,一切正常。

当我部署脚本时,使用正确的用户运行作业并使用与Visual Studio作业完全相同的参数设置SQL作业,它将毫无错误地运行,但跳过CoolPackage,AwesomePackage和HyperPackage包。它将执行Package中的代码,然后按照Package中定义的顺序执行所有四个程序包,而不是直接执行FinalPackage。

由于在Visual Studio中一切都很完美,我甚至不知道从哪里开始寻找。

+0

从SSIS错误日志开始。最可能的原因是SQL代理的权限。 –

+0

我发现了原因,但它产生了另一个问题。它运行所有软件包,但Cool,Awesome和Hyper软件包中的第一件事是连接到FTP服务器,下载文件,然后遍历这些文件。我没有连接到存储文件的地方,只使用\\ server \ folder \子文件夹指定存储ftp文件的位置并进行迭代。 SQL作业没有从那里读取的权限,因此它失败了,但它产生了没有错误。它只是说“将所有文件从ftp传输到本地磁盘”(即\\ server e.tc磁盘),然后“迭代为空” –

+0

作业是否有权连接,但不能查看这些文件?如果是这样,那么我认为这不会是一个错误。您可能必须编写一些自定义代码,以便在找不到预期文件时引发错误。 –

回答

0

这实际上并不是包没有运行的情况,这是包不能完美执行其内容的情况。

要检查程序包是否正常运行,您需要导航到左侧“对象资源管理器”中的MSSMS(SQL Studio)中的程序包。当您找到您的软件包(在“集成服务目录” - >“SSISDB” - >“[软件包文件夹]” - >“项目” - >“[软件包名称]”下)右键单击它并选择“报告” >“标准报告” - >“所有执行”。这将产生一份报告,您可以深入了解并确切了解运行情况和未运行的情况。

这解决了我的问题。