今天遇到一个bug,分享给大家。
尝试在 Visual Studio(2015 和 2017)中执行 SSIS 包时,可能会发生以下情况(请注意此包之前已成功执行)。
虽然底部清楚地表明SSIS包已完成,但数据流任务仍在进行中(并且永远不会完成)。还会发生什么(不知道是否一致)会弹出一个 CMD 窗口,其中显示“SQLDUMPER.EXE”。
这不是由于步骤的配置方式造成的,因为单独执行它们可能仍然会产生正确的结果。
还要注意,就我而言,这个问题使 Visual Studio 极其不稳定。每次执行之后或执行过程中,Visual Studio 完全崩溃并被 Windows 自动关闭的情况并不罕见。
没有错误消息,我不知道发生这种情况的原因是什么,直到......(答案如下)
经过大量谷歌搜索后,我找到了很多人似乎都有这个问题的原因。
显然对于大多数人来说这解决了问题。
但对我来说,我必须想出另一个解决方案。
这些解决方案是违反直觉的,因为这个问题似乎是随机出现的,并且目标 sql server 版本在整个开发过程中可能是相同的。
我还没有尝试看看当我将有缺陷的项目部署到服务器并查看它是否在那里运行时会发生什么,因此我们将不胜感激有关此问题的任何和所有额外信息。
我花了很多时间谷歌搜索这个问题。看起来世界各地很多人都在报道这一点。它通常取决于 x32/x64 兼容性或排序或数据大小或编译自定义 C# 脚本(或其组合)的一些微小问题。
这些东西对我来说都不起作用,所以我从头开始重建了整个包,问题就消失了。
它远非完美,特别是如果您的包很大和/或很复杂,但如果没有其他办法,这是您最后的手段。
“Run64BitRunTime”已设置为“True”,但我收到此错误。所以我重新启动了视觉工作室并解决了问题。
所提出的解决方案都不适合我。我不得不重建解决方案和项目几次,这解决了它。当然,我在这期间打开和关闭了 VS 好几次。我想这是一个错误,你必须修补它才能使其正常工作。
我只是想分享一下,我和你们许多人一样继承了 SSIS。我们的环境很混乱,不仅开发人员安装了多个版本的 Visual Studio,而且部署这些包的服务器也很混乱。
像OP一样,我一直在寻找“SSIS Package...完成:取消”的原因,其中:
与其他系统一样,64 位与 32 位没有什么区别。特定版本的 Visual Studio 甚至从头开始构建都没有。
然后浏览这个帖子,我看到了 JeroenB 的回复。
瞧!这就是问题所在!
我将 TargetServerVersion 更改为 2016(我们所有的机器目前安装的是 2016)并完成。一切正常。
我必须将旧包(全部命名为 package.dtsx)迁移到使用 SSISDB(从 MSDB、文件系统等)来标准化它们并删除环境参数等的硬编码。
这太愚蠢了。研究一周!这么多年过去了,答案仍然对我有帮助。
谢谢@JeroenB!!
(我会用有帮助的答案来回复评论,但我没有足够的声誉:( )。