SSIS 包在 Visual Studio 2010 中卡住了“验证 Excel 源”

Posted

技术标签:

【中文标题】SSIS 包在 Visual Studio 2010 中卡住了“验证 Excel 源”【英文标题】:SSIS Package stuck "Validating Excel Source" in Visual Studio 2010 【发布时间】:2015-03-04 15:11:41 【问题描述】:

我有一个季度更新包,我从系统后端运行,它使用 Excel(2007 格式)文档作为数据源。该包将 Excel 文档中的数据暂存到数据库中的一个表中,然后在生产系统中对其进行处理和加载。

今天,我收到了 2015 年 4 月的第二季度更新,并尝试像过去一样通过 Visual Studio 将新文件运行到暂存系统中。但是今天出于某种原因,VS / SSIS 似乎卡在了“验证 Excel 源”中。在不得不通过任务管理器杀死我的 Visual Studio 实例之前,我已经让它坐了 10 分钟。

源文档很小,相对简单,有 6 列,大小不到 300 Kb,所以我突然无法理解验证问题。它似乎与我之前运行的 excel 版本和格式相同。

该软件包在今年的大部分时间里都没有受到影响,只需为每个季度的运行更改一系列参数。

我已经从包中删除了连接管理器和 excel 组件并重新创建了它们,但似乎仍然存在同样的问题。我还重新创建了源文档。

我尝试 tp 禁用 DelayValidation 和 ValidateExternalMetaData 属性,希望它能给我一个有意义的错误对话,但还没有通过“验证 Excel 源”消息。

任何意见将不胜感激,谢谢。

【问题讨论】:

您是否尝试过以管理员身份运行 Visual Studio? 以管理员身份运行对问题没有影响。似乎是 Excel Office 驱动程序问题。 【参考方案1】:

我似乎找到了解决问题的方法。

最近对我安装的 Office 套件的更新似乎改变了我机器上的 Excel 驱动程序。

以下文章帮助我解决了这个问题,但事实证明我需要重新安装 Office 2007 系统驱动程序:数据连接组件...(链接在第 2 篇文章中)

安装后,我可以重新打开我的解决方案并查看 Excel 文档。

感谢您的帮助。

Using Excel 2012 file in Excel Connection Manager

How to fix errors: "the 'microsoft.ace.oledb.12.0' provider is not registered on the local machine"

【讨论】:

【参考方案2】:

从它指向的目录中删除连接管理器正在寻找的 excel 文件。一旦你这样做了,当它找不到它正在寻找的文件时,Excel 源的验证应该会失败。这应该允许您进入包并在属性中设置 Delay Validation = True。

该包验证 excel 连接管理器的方式与验证任何其他 OLE DB 连接管理器的方式相同。它确认连接,然后运行您的语句以验证数据的返回。如果你拿走它的源头,它应该会很快熄灭。

我发现您机器上的后台处理可能会阻止此验证或请求处理,这与 SQL 中的优先级查询可能相同。如果您的机器处于运行多个优先任务的状态,则此验证将被搁置一旁,并且可以并且将永远持续下去。在这种情况下,用于验证的源的连接断开连接或超时,并且它不在 UI 中处理,因此它只是挂起并锁定。

【讨论】:

感谢您的建议,它尝试按照您说的做,但似乎没有解决我的问题。我倾向于这是安装的 Excel 驱动程序的一个问题,因为它现在似乎会影响我试图在我的 SSIS 包中用作源的任何 Excel 文档。 就可以了。这将是我的下一个建议,因为 jet 或 ace 连接管理器并没有一个非常好的错误处理系统,他们只是倾向于废话并锁定

以上是关于SSIS 包在 Visual Studio 2010 中卡住了“验证 Excel 源”的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 2012 / 2013 中使用 SSIS BIDS

部署 SSIS 包时 Visual Studio 2012 崩溃

Visual Studio 2019安装SSIS

使用 Visual Studio 2010 的 SSIS 发送邮件任务脚本

Visual Studio 17 和 19 不能再编辑 SSIS 项目

SSIS 项目在 Visual Studio 中构建,但不是来自 Devenv 命令行