我有一个SQL Server 2008 SSIS作业,它执行一些Win 32 exe文件。当我通过BIDS(在Windows 2008框中)执行作业时,此作业运行正常。现在我已经在MSDB数据库中部署了包并尝试将包作为SQLAgent Job执行。
当我这样做时,作业失败并在执行Win 32 exe时抛出错误消息。我能够在同一台服务器上运行批处理文件中的exe。但是当SQLServer代理作业尝试执行时,它会抛出错误
代码:0xC0029151,进程退出代码为“1”,而预期为“0”。结束错误DTExec:程序包执行返回DTSER_FAILURE(1)。
有什么想法吗?
答案 0 :(得分:7)
我的假设是服务器是64位服务器,是吗?如果是这样,代理将在64位模式下运行SSIS,这会导致与可执行文件不兼容。
在代理作业中,在“执行选项”选项卡上,选中“使用32位运行时”,它应该没问题。
这个问题标记为2008,但如果我没记错的话,2005 SQL Server Integration Services Package类型的SQL Agent任务没有选择以32位模式运行,默认情况下一切都以64位模式运行。为了解决这个问题,需要运行一个操作系统命令并调用最有可能在C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe
中找到的32位dtexec.exe
答案 1 :(得分:1)
这也需要在BIDS上进行更改。 解决方案浏览器>右键单击项目属性>配置属性>调试选项> Run64BitRuntime - False