如何在x64机器上使用32位dtexec解决加载SSIS包的错误?

时间:2009-07-24 22:54:02

标签: sql-server ssis

我有需要使用Excel文件(颤抖)的Integration Services包,还需要在x64上执行。我对整个SSIS x64与32位问题有关,所以我使用MS建议的使用SQL代理作业步骤类型Operating System / CMDExec的技术安排这些问题子包。显式调用32位dtexec的命令行字符串。到目前为止一切都很好。

以下是问题:软件包仍然无法加载,并且抱怨无法加载Excel位,而是我的方便日志提供程序登录到SQL Server。这是针对对象名称编辑的错误消息:

  

开始时间:下午2:33:01
  错误:2009-07-24 14:33:06.51
  代码:0xC0010018
  来源:
  说明:

     

加载值时出错“< DTS:ConnectionManager xmlns:DTS =”www.microsoft.com/SqlServer/Dts“>< DTS:属性DTS:名称=”DelayValidation“> 0< / DTS:属性> < DTS:属性DTS:名称=“对象名称”> My_LogCon< / DTS:属性>< DTS:属性DTS:名称=“DTSID”> {86320FE6-AEFD-4A58-9277-84685B9B9“来自节点”DTS :的ConnectionManager”
  结束错误由于错误0xC0010014,无法加载包“c:\ folder \ mypkg.dtsx”   说明:由于错误0xC0010014导致程序包无法加载“发生了一个或多个错误。在此之前应该有更多特定错误来解释错误的详细信息。此消息用作遇到错误的函数的返回值。” 。当CPackage :: LoadFromXML失败时会发生这种情况。 ...处理退出代码5.步骤失败。

这些包在32位Visual Studio / debug中运行完美。有人见过这类事吗?

2 个答案:

答案 0 :(得分:1)

从70-488书中:

  

Dtexec,dtutil和SQL Server导入和导出向导都有   64位和32位应用程序。一定要注意,如果你发展   一个32位环境中的包,并希望在一个包中运行该包   在64位环境中,连接管理器需要是64位的   兼容。某些连接管理器(如Excel)工作在32位   只有环境。

答案 1 :(得分:0)

我不认为这与Excel有关。您的错误消息明确指出:

Could not load package "c:\folder\mypkg.dtsx"

更详细的错误消息可能有所帮助。也很奇怪,Excel文件加载后有很多进程吗?我面临同样的情况,不得不以32位运行整个过程。

我可能有一个解决方法,允许您使用Excel文件作为源,但仍然将其配置为作为SSIS作业运行,而不是CmdExec。我会在测试后分享细节。

查看以下Microsoft知识库文章。您的问题似乎有不同的原因。

You receive an error message when you try to load an SSIS package that contains a DateTime type variable in SQL Server 2005