为什么在运行Visual Studio中的SSIS负载时,但没有运行使用执行包实用工具相同的包时,我

2019-07-05 18:27发布

我在2012年的SSIS工作的一个数据集市装载包当试图执行在Visual Studio中的包我得到这个错误:

“的AcquireConnection方法调用连接管理器数据Warehouse.ssusr,错误代码0xC0014009失败”。

当我测试的连接管理器数据Warehouse.ssusr的连接我看到它通过。

当我执行使用执行包实用工具的Visual Studio之外的包,包上运行。

我不明白这是怎么回事。

该软件包还拒绝使用SQL Server作业计划运行,如果有什么做什么。

Answer 1:

在这里做一些假设,但我会认为这是一个32比64位的问题。 为了验证,尝试从命令提示符下这两个命令(Windows键,R,CMD.EXE或开始,运行,CMD.EXE)

"C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\dtexec.exe" /file C:\myPackage.dtsx
"C:\Program Files\Microsoft SQL Server\110\DTS\Binn\dtexec.exe" /file C:\myPackage.dtsx

首先将在32位模式下运行包,而第二运行时,它在64位模式。 这件事情影响的驱动程序和您所创建的任何DSN的打算只在32/64位世界可见。

修复SSDT

一旦你确定你需要哪一个,可能是32位版本,你需要确保你的项目使用相应的运行时间。 右键单击您的项目,并选择属性,然后导航到下的配置属性调试选项卡。

反转Run64BitRuntime值之后,我想你的包将从中SSDT工作。

修复SQL代理

您需要编辑现有的SQL代理作业来改变作业步骤的bittedness。 这将是Configuration选项卡下,然后在高级选项卡下。 检查/取消选中32位运行。

谎言和欺骗

细心的人可能会看到DTEXEC提供/X86选项。 不要相信它。 才能得到正确的位岬的唯一方法是显式调用正确的dtexec.exe的文档,甚至说很多,但没有人读文件。

此选项仅用于SQL Server代理。 如果运行在命令提示符下dtexec实用工具,此选项将被忽略。



文章来源: Why does my ODBC connection fail when running an SSIS load in Visual Studio but not when running the same package using Execute Package Utility