最终,我尝试使用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才有问题。
我已经尝试过其他帖子中的所有解决方案,但是没有任何帮助。有什么想法吗?
谢谢, 伊恩
答案 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文件的路径}