BIDS 2008 SSIS 包数据流任务验证失败,并返回"VS_ISBROKEN"错误



我正在工作的一个BIDS 2008 SSIS包在到达包中的任何数据流任务时验证失败。我能够在本地计算机上运行BIDS 2008中的SSIS包。当我通过SQL代理作业运行SSIS包时,包失败,并显示以下错误消息。我通过谷歌搜索研究了错误代码0x80004005和错误代码0xC004706B,但没有发现任何有用的东西。

所讨论的SSIS包是在同一个SQL代理作业中一起运行的几个SSIS包之一。原始SQL代理作业中的其他SSIS包都能够成功运行。这使我相信SQL代理服务帐户和代理帐户配置了适当的权限。DBA能够确认服务帐户和代理帐户确实具有适当的权限。

SQL Agent Job使用操作系统(CmdExec)类型运行SSIS包,并且SSIS包的Run64BitRuntime设置为FALSE,因此SSIS包在32位运行时下运行。

为了调试,我从原来的SSIS包中重新创建了一个新的SSIS包中的数据流任务、数据库连接以及相关的源和目标任务。调试SSIS包能够在我的计算机上本地运行,但是当我尝试使用与原始SQL代理作业完全相同的新SQL代理作业设置运行时失败。

我也使用不同的数据库连接,如本机OLE DBSQL Server本机客户端10.0,10.1,11.1和本机OLE DBMicrosoft OLE DB提供程序的SQL Server。当我测试调试SSIS包

时,所有这些都失败了。

我已经验证了OLE DB源和目的地的元数据与SQL Server数据库表中的数据类型和长度匹配。我已经验证了数据流任务中OLE DB源任务使用的存储过程在SQL Server Management Studio上运行时有效,并且服务帐户具有运行该存储过程的权限。

我想这是我在解决这个问题的过程中所能回忆起的所有信息。

其他人以前遇到过这个错误吗?有什么可能的解决方案可以尝试吗?

欢迎任何帮助!

错误信息:

作为用户:domainSQLAgentServiceAccount执行。Microsoft (R) SQL Server Execute Package Utility Version 10.50.2500.0 for 64位
Copyright (C) Microsoft Corporation 2010。版权所有。

start: 1:37:09 PM

错误:2014-08-14 13:37:09.94代码:0xC0202009来源:Data Flow Task - OLEDB Source [1]
描述:SSIS错误代码dtse_olederror。发生OLE DB错误。

错误码:0x80004005。有OLE DB记录可用。来源:"Microsoft OLE DB Provider for SQL Server" Hresult: 0x80004005
描述:"语法错误或访问冲突"。
结束错误

错误:2014-08-14 13:37:09.94代码:0xC004706B来源:数据流任务SSIS。管道
描述:"组件"OLEDB源"(1)"验证失败,返回验证状态"VS_ISBROKEN".
结束错误

错误:2014-08-14 13:37:09.94代码:0xC004700C来源:数据流任务SSIS。管道
描述:一个或多个组件验证失败。
结束错误

错误:2014-08-14 13:37:09.94代码:0xC0024107来源:数据流任务
描述:任务验证过程中出现错误。
结束错误

DTExec: The package execution return DTSER_FAILURE (1).

start: 1:37:09 PM Finished: 1:37:09 PM Elapsed: 0.219秒进程退出代码1。

步骤失败。

我找到了这个解决方案:

确保连接管理器中的连接字符串具有"Provider=SQLNCLI11.1; Persist Security Info=True; Auto Translate=False;"

我就这么做了,在Hyperscale/SQL Server上也成功了。

这是一种奇怪的错误,我得到了一段时间之前,我使用以下来解决这个问题:

以管理员身份运行命令提示符输入以下命令并回车:regsvr32 jscript.dll输入以下命令并回车:regsvr32 vbscript.dll

问题的解决方案是,运行SQL Agent作业的服务帐户对通过数据流任务执行的存储过程没有执行权限。给服务帐户执行权限,SSIS包能够成功执行。

最新更新