2

我有一个 SQL Server 2008 SSIS 作业,它执行一些 Win 32 exe 文件。当我通过 BIDS(在 Windows 2008 机器上)执行作业时,该作业运行良好。现在我已经在 MSDB 数据库中部署了包,并尝试将包作为 SQLAgent 作业执行。

当我这样做时,作业失败并在执行 Win 32 exe 时抛出错误消息。我可以从同一台服务器上的批处理文件运行 exe。但是当 SQLServer 代理作业尝试执行时,它会抛出以下错误

代码:0xC0029151,进程退出代码为“1”,而预期为“0”。结束错误 DTExec:包执行返回 DTSER_FAILURE (1)。

有任何想法吗?

4

2 回答 2

7

我的假设是服务器是 64 位服务器,是吗?如果是这样,代理将在 64 位模式下运行 SSIS,这会导致与可执行文件不兼容。

在代理作业中,在执行选项选项卡上,选中“使用 32 位运行时”,应该没问题。

在此处输入图像描述

这个问题被标记为 2008 但如果我没记错的话,SQL Server Integration Services Package 类型的 2005 SQL 代理任务没有在 32 位模式下运行的选项,默认情况下一切都在 64 位模式下运行。为了解决这个问题,需要运行一个操作系统命令并调用 32 位 dtexec.exe,它很可能在C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe

于 2011-10-16T20:32:51.560 回答
1

这也需要在 BIDS 上进行更改。解决方案资源管理器>右键单击项目属性>配置属性>调试选项>Run64BitRuntime - False 在此处输入图像描述

于 2011-12-09T09:05:18.093 回答