从命令行运行SSIS包时出错

时间:2017-08-03 19:58:05

标签: sql-server azure ssis

最终,我尝试使用Azure VM(Windows Server 2016 Datacenter)中的任务计划程序定期运行SSIS包。从我的开发机器(Windows 10)上的命令行,我能够运行...

dtexec.exe /Project "pathToMy.ispac" /Package "pathToMy.dtsx"

......它按预期工作。但是,当我尝试从Azure VM执行相同操作时,我收到以下错误:

  

Microsoft(R)SQL Server执行包实用程序版本11.0.6020.0   适用于32位版权所有(C)Microsoft Corporation。保留所有权利。

     

开始时间:2:17:46 PM无法加载包裹   " MyPackage.dtsx"因为错误0x80131500。   说明:由于错误0xC0011008"错误,程序包无法加载   从XML加载。没有更详细的错误信息可以   为此问题指定,因为没有传递Events对象   可以存储详细的错误信息。"。这发生在   CPackage :: LoadFromXML失败。资料来源:MyPackage   开始于:2:17:46 PM完成时间:下午2:17:47经过:0.547秒

在两台计算机上,我安装了相同版本的SQL Server 2016 Developer(w / SSIS)和Visual Studio 2015。此外,我能够在Visual Studio中在VM上正常运行包。我只有dtexec.exe才有问题。

我已经尝试过其他帖子中的所有解决方案,但是没有任何帮助。有什么想法吗?

谢谢, 伊恩

1 个答案:

答案 0 :(得分:0)

感谢@ Nick.McDermaid,找到了这个谜语的答案。通过在开发机器和VM上运行dtexec.exe(没有参数),我能够看到VM版本是v11,开发版本是v13,这解释了为什么我收到错误以及为什么一个工作和另一个没'吨

然后,我在VM上搜索了dtexec.exe副本的文件资源管理器,并找到了几个。显然,环境路径设置为查找旧版本。我可能已经找到导致此问题的变量并更改了它。但是,出于对破坏其他东西并想要快速解决方案的担忧,我选择使用正确版本的完整路径执行。对于第13版,这最终成为......

  

" C:\ Program Files \ Microsoft SQL Server \ 130 \ DTS \ Binn \ dtexec.exe"

因此,对于我的日程安排任务,我为我的"启动程序"设置了以下属性。动作。

  

程序/脚本:" C:\ Program Files \ Microsoft SQL Server \ 130 \ DTS \ Binn \ dtexec.exe"

     

添加参数:/ Project" bin / Development / myProject.ispac" / Package" myPackage.dtsx"

     

开始于:c:{我的.dtsx文件的路径}