2

いくつかの Win 32 exe ファイルを実行する SQL Server 2008 SSIS ジョブがあります。BIDS (Windows 2008 ボックス) を介してジョブを実行すると、このジョブは正常に実行されます。これで、パッケージを MSDB データベースにデプロイし、パッケージを SQLAgent ジョブとして実行しようとしました。

これを行うと、Win 32 exe の実行中にジョブが失敗し、エラー メッセージがスローされます。同じサーバー上のバッチ ファイルから exe を実行できます。ただし、SQLServer エージェント ジョブを実行しようとすると、以下のエラーがスローされます

コード: 0xC0029151、プロセスの終了コードは "1" でしたが、予想は "0" でした。終了エラー DTExec: パッケージの実行で DTSER_FAILURE (1) が返されました。

何か案は?

4

2 に答える 2

7

私の仮定では、サーバーは 64 ビット サーバーですよね?その場合、エージェントは SSIS を 64 ビット モードで実行しており、実行可能ファイルとの非互換性を引き起こしています。

エージェント ジョブの [実行オプション] タブで、[32 ビット ランタイムを使用する] をオンにします。これで問題ありません。

ここに画像の説明を入力

質問は 2008 とタグ付けされていますが、私の記憶が正しければ、タイプ SQL Server Integration Services Package の 2005 SQL Agent タスクには 32 ビット モードで実行するオプションがなく、デフォルトではすべてが 64 ビット モードで実行されました。これを回避するには、OS コマンドを実行し、32 ビットの dtexec.exe を呼び出す必要がありました。C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe

于 2011-10-16T20:32:51.560 に答える
1

これも入札で変更する必要があります。ソリューション エクスプローラー > [プロジェクト プロパティ] > [構成のプロパティ] > [デバッグ オプション] > [Run64BitRuntime] を右クリック - False ここに画像の説明を入力

于 2011-12-09T09:05:18.093 に答える