2011-10-16 58 views
2

我有一個SQL Server 2008 SSIS作業,它執行一些Win 32 exe文件。當我通過BIDS執行作業(在Windows 2008框中)時,此作業正常運行。現在我已經在MSDB數據庫中部署了該包,並嘗試將該包作爲SQLAgent作業執行。作爲SQLAgent作業執行SSIS包作業

當我這樣做時,作業失敗並在執行Win 32 exe時引發錯誤消息。我能夠從同一臺服務器上的批處理文件運行該exe文件。但是,當SQLServer代理作業嘗試執行它拋出錯誤以下錯誤

代碼:0xC0029151,進程退出代碼爲「1」,而預期爲「0」。結束錯誤DTExec:程序包執行返回DTSER_FAILURE(1)。

任何想法?

回答

7

我的假設是服務器是64位服務器,是嗎?如果是這樣,代理將在64位模式下運行SSIS,這會導致與可執行文件不兼容。

在代理作業中的執行選項選項卡上,選中「使用32位運行時」,它應該沒問題。

enter image description here

問題被標記爲2008年,但如果我沒有記錯,類型SQL Server Integration Services包的2005年的SQL代理任務沒有一個選項,在32位模式下運行,默認情況下都在64跑了位模式。爲了解決這個問題,需要運行一個操作系統命令並呼叫到最有可能發現的32位dtexec.exe。C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe

+0

您好@billinkc:感謝您的回覆。我實際上嘗試了32位運行時選項,但它沒有奏效。當我直接從MSDB數據庫運行包時,它正在執行正常。我已經將有問題的exe文件的兼容性設置更改爲windows 2000. – Phoenix

+0

在開發機器上,它可以從BIDS正常工作,請嘗試從命令行運行包。 'C:\ Program Files文件(x86)\ Microsoft SQL Server \ 100 \ DTS \ Binn \ DTExec.exe「/文件C:\ src \ package.dtsx',如果您的開發框不是64位, (x86)'部分。調用是否在你的盒子上工作或失敗? – billinkc

1

這也需要在BIDS上進行更改。 解決方案資源管理器>右鍵單擊項目屬性>配置屬性>調試選項> Run64BitRuntime - False enter image description here