我有一个.dtsx文件(一个SSIS包),用于从FTP服务器下载文件并导入数据。它在我手动运行时运行良好。但是,当我计划将程序包作为SQL Server代理作业中的一个步骤调用时,它会失败。它失败的步骤是我称之为.bat文件的步骤。在作业历史记录查看器中的错误这样说:当作为SQL中的步骤调用时,SSIS包不运行
Error: 2009-05-26 12:52:25.64
Code: 0xC0029151 Source: Execute batch file Execute Process Task
Description: In Executing "D:\xxx\import.bat" "" at "", The process exit code was "1" while the expected was "0". End Error DTExec: The package execution returned DTSER_FAILURE (1).
我认为这是一个权限问题,但我不知道如何解决这个问题。作业所有者是管理员用户,因此我已验证他们有权访问.bat文件所在的目录。我试过进入服务并更改SQL Server代理的“登录为”选项,并且这两个选项都不起作用(本地系统帐户和此帐户)。有没有人有任何其他权限需要调整,以使其工作的想法?
批处理文件在SSIS中的一个步骤中执行。这是一个执行进程任务。 从命令窗口运行时,批处理文件运行成功。当我手动运行SSIS包时,它也能成功运行。这就是为什么我认为这个问题与权限有关,也许是MSSQLAGENT? – Pamela 2009-05-27 23:21:20
当您远程执行SSIS服务器时,是否通过runas命令执行批处理文件? 这应该使用SSIS执行它的权限执行它。 当你在Visual Studio中执行SSIS包时,它是否会给你同样的错误? – Dane 2009-05-27 23:41:36
感谢您的帮助,戴恩!我做了一些故障排除,并将该批处理文件作为SQL作业中的一个步骤执行,并以此方式获得了更有用的错误消息。从那里,我能弄清楚这个问题! (请参阅下面的消息。) – Pamela 2009-05-28 00:29:47