包中未找到SSIS连接

时间:2012-08-08 23:30:17

标签: sql sql-server ssis

我是SSIS编程的新手,我在部署SSIS包时遇到了一些问题。

这个软件包可以在我的电脑上正常运行,做它需要做的一切......但是当我部署它时找不到连接字符串。

这是错误:

  

代码:0xC001000E来源:说明:连接   “{DA7CD38D-F6AA-4B06-8014-58BEE5684364}”未找到。这个错误是   当特定连接元素由Connections集合抛出时   找不到。结束错误

     

错误:2012-08-09 00:21:06.25代码:0xC001000E来源:包   描述:连接“{DA7CD38D-F6AA-4B06-8014-58BEE5684364}”   找不到。当时,Connections集合会抛出此错误   找不到特定的连接元素。结束错误

     

错误:2012-08-09 00:21:06.25代码:0xC001000E来源:包   描述:连接“{DA7CD38D-F6AA-4B06-8014-58BEE5684364}”   找不到。当时,Connections集合会抛出此错误   找不到特定的连接元素。结束错误

     

错误:2012-08-09 00:21:06.25代码:0xC00291EB源:执行SQL   任务执行SQL任务描述:连接管理器   “{DA7CD38D-F6AA-4B06-8014-58BEE5684364}”不存在。结束错误

     

错误:2012-08-09 00:21:06.25代码:0xC0024107源:执行SQL   任务描述:任务验证期间出现错误。结束   错误DTExec:程序包执行返回DTSER_FAILURE(1)。   开始时间:00:21:04完成时间:00:21:06经过:1.888秒该   包执行失败。步骤失败了。

21 个答案:

答案 0 :(得分:20)

我参加派对的时间有点晚了,但是在遇到相同的错误时遇到了这个问题并发现了不同的分辨率。

创建SSIS 2012包时,在“解决方案资源管理器”窗口中,您将看到项目级别的“连接管理器”文件夹。这似乎是创建连接的最合理的位置,应该在创建可以由项目中的任何包使用的连接时使用。它包含在项目级别,而不是包级别。

使用dtexec运行我的dtsx软件包时,我收到了上面显示的相同错误。这是因为包中没有包含连接(只是项目)。我的解决方案是进入包设计器,然后在Connection Manager窗口中,右键单击项目级连接(使用“(project)”前缀显示)并选择“Convert to Package Connection”。这将在实际的dtsx包中嵌入连接。这缓解了我的问题。

答案 1 :(得分:19)

您的ssis包似乎指向其他可能是deletedrenamed的连接。尝试打开SSIS组件并指向连接管理器中的正确连接。

当我们复制SSIS包组件以创建新包或者因为重命名连接或者可能仍有使用xml配置文件中定义的旧连接的组件时(在您的情况下尝试检查执行SQL)抛出错误的任务。)如果您使用XML进行配置,请尝试部署新的。

答案 2 :(得分:4)

当您使用新的SSIS 2012“共享连接管理器”概念时,似乎也会发生这种情况,其中连接管理器未在您的包中定义,而是在Visual Studio项目中定义,并且只是在包中引用。通过SQL Agent或DTEXEC执行它会产生相同的错误消息。

我还没有找到解决方案,但如果有人以前经历过,我很乐意得到一些反馈。

答案 3 :(得分:4)

感谢您发布此问题。

一个解决方案:通过Windows资源管理器以XML格式打开包,找到无法找到的连接管理器的GUID。就我而言,这是一个被破坏的EventHandler连接。在控制流程中使用了相同的连接管理器,但不知何故在那里没有损坏,因此用户通过UI并不明显。由于XML指向事件处理程序连接管理器,因此我在UI中打开了事件处理程序选项卡,它立即在源和目标上显示了引用已损坏的连接管理器ID的精彩RED X.我把它重新命名为正确的经理,重建了pkg并保存了。很高兴。

关键是以XML格式打开pkg并在代码中查找GUID以查看它失败的位置。如果我无法在UI中找到对它的有效引用,我将要将XML连接重命名为XML中的另一个已知GUID,然后进入UI并再次重新指定它,或者完全删除它。

祝你好运。

答案 4 :(得分:3)

在我的情况下,我发现问题是先前配置的日志提供程序指向不再使用的旧连接。要解决此问题,请单击“包资源管理器”选项卡,然后单击“日志提供程序”并删除过期的日志提供程序我希望这有助于某人。

答案 5 :(得分:2)

以前关于删除或删除连接的评论绝对是可能的。但是,当您尝试调用使用项目级别连接(而不是包级别连接)的包时,也会出现此错误。

如果您正在使用项目级连接但仍想使用dtexec,请不要担心有办法。我不建议将它们转换为包级连接(假设您将它们创建为项目级连接,这是有充分理由的。)

您需要部署SSIS项目。您的SSIS服务器需要创建目录(https://msdn.microsoft.com/en-us/library/gg471509.aspx)。获得目录后,在SSIS项目中选择Project-> Deploy并按照向导进行操作。结果将是在SSIS解决方案文件夹/ bin / Development

中生成的* .ispac文件

现在为money命令,而不是简单地调用你的包: dtexec.exe / f“package.dtsx”

反而称之为: dtexec.exe / project“< ...> /project.ispac”/ package“< ...> /package.dtsx”

ispac文件具有执行包所需的项目级连接信息,您应该进行设置!

答案 6 :(得分:0)

这件事发生在我身上: 不是由我创建的SSIS程序包在某个时候开始表现异常,例如给Connection not found -error提示,但是我的任务是修复它。 当我查看“ SQL代理”作业下的“作业步骤属性”时,它没有显示正在使用的配置,并且数据源确实应该是正确的。但是,错误消息指出了不同的东西。然后,我打开了有问题的.dtsx文件,并注意到其中有conf文件。设置并在该程序包中配置。文件的连接名称设置错误。因此,我的建议是并排比较.dtsx和.dtsConfig -files。

答案 7 :(得分:0)

我有同样的问题。

我使用项目级连接管理器,并且我的程序包在SSDT中正确运行,但是当我部署它们并通过SQL Server代理通过作业执行它们时,出现“未找到连接”错误。

所以我部署了项目,然后问题就解决了,当您使用项目级别的连接管理器,而只是从该项目中部署单个程序包,然后通过sql server agent调用程序包时,它无法识别您的连接管理器,因此您应该确定程序包级别的连接管理器,或者您应该首先部署项目。

答案 8 :(得分:0)

对于在Visual Studio 2015中开发的程序包,我发现我必须为参数提供一个值(在不同服务器上部署或运行​​时会出现这种情况),该参数设置连接管理器的连接字符串,而不使用设计时间值。 这将消除错误消息。我认为这可能是一个错误。

dtexec /project c:\mypath\ETL.ispac /package mypackage.dtsx /SET \Package.Variables[$Project::myParameterName];"myValueForTheParameter"

我在没有或没有参数化连接字符串的情况下对此进行了测试,这是在项目级别上的。结果是相同的:即,即使我认为未使用该参数,也必须设置该参数的值。

答案 9 :(得分:0)

作业中的连接值似乎区分大小写。

答案 10 :(得分:0)

我通常发现,当SSIS似乎非理性地抱怨一个明显好的连接时,这是因为我试图直接使用包变量而不是通过Connection Manager来定义Connection。示例:今天我有一个Web服务任务,我犯了一个错误,就是根据包含Web服务URL的包变量直接创建一个定义其“Connection”属性的Expression。但请注意,Connection与ConnectionString不同!因此,当我查看任务时,它会查找所有世界,因为它显示了一个完全有效的URL作为“连接”。问题是Connection不能是一个字符串;它必须是一个连接管理器。

答案 11 :(得分:0)

我通过识别失败的特定连接确定此问题是一个损坏的连接管理器。我在SQL Server 2016工作,我已经创建了SSISDB目录,我正在那里部署我的项目。

这是简短的回答。删除连接管理器,然后使用相同的名称重新创建它。确保使用该连接的软件包仍然正确连接,您应该好好去。如果你不确定如何做到这一点,我已经在下面列出了详细的程序。

为了识别腐败的连接,我做了以下事情。在SSMS中,我打开了Integration Services Catalogs文件夹,然后是SSISDB文件夹,然后是我的解决方案的文件夹,然后打开,直到找到该项目的包列表。

右键单击失败的软件包,转到报告>标准报告>所有执行,选择上次执行,查看“所有消息”报告,我能够确定哪个连接失败。在我的情况下,连接管理器到我的目的地。我只是删除了连接管理器,然后重新创建了一个具有相同名称的新连接管理器。

随后,我进入我的包,打开了数据流,发现我的一些目的地已经点亮了红色X.我打开了目的地,重新选择了正确的连接名称,重新选择了目标表,并检查映射是否仍然正确。我有六个目的地,只有三个有红色X但我点击了所有目的地并确保它们仍然配置正确。

答案 12 :(得分:0)

导致2008R2问题的另一种排列是包配置。我已经设置了一个要从dtsconfig文件保存/配置的属性,然后删除了它所引用的连接。解决方案很简单,编辑配置并取消选择不需要的对象,然后为重命名的连接管理器选择适当的属性。 保存,关闭和重新打开项目后,错误没有重现。 : - )

答案 13 :(得分:0)

这个解决方案对我有用:

转到SQL Server Management Studio,右键单击失败的步骤并选择Properties - >记录 - >删除日志提供程序,然后重新添加

答案 14 :(得分:0)

在我的情况下我遇到了同样的问题,原因是连接没有嵌入并且Oracle Client不兼容。

<强> SOLUTION:

我的环境:SQL SERVER 2014 64位 Oracle客户端32位

  1. 用于include / embed Connection

    • open package
    • 右键点击连接
    • 选择&#34;转换为项目&#34;选项
  2. 对于SQL SSIS目录/作业计划,请按照图片

    中的步骤设置配置
    • 正确的SQL JOB-&gt;步骤&#34;或&#34; SSIS目录 - &gt;包 - &gt;执行&#34;并选择&#34;属性&#34;
    • 选择配置 - &gt;高级标签
    • 检查32位运行时
  3. 我试图逐步发布细节图片,但由于声誉,Stack Overflow不允许这样做。希望我稍后会更新这篇文章。

答案 15 :(得分:0)

尝试使用SSDT 2013在VS中打开SSDT 2010 / SSIS 2012项目时收到此错误。当它打开项目时,它要求迁移所有软件包。当我允许它继续时,每个包都会因此错误而失败。我发现绕过转换并且只是单独打开每个包,包在打开时升级,并且转换得很好并成功运行。

答案 16 :(得分:0)

就我而言,我可以更轻松地解决这个问题。我打开了x.dtsConfig存档,由于未知原因,该存档不是标准格式,因此ssis无法识别配置。幸运的是,我之前已经备份了存档,因此我只需将其复制到原始文件夹,一切都恢复正常。

答案 17 :(得分:0)

在我的情况下,其中一个事件处理程序任务指向已删除的旧连接,删除未使用的事件处理程序任务修复了问题。 我最终以XML格式打开包,以了解问题在于事件处理程序任务!

答案 18 :(得分:0)

我有同样的问题,上面的其他内容重新给了它。事实证明,我的ssis右下角有一个旧的sql任务被禁用,我真的不得不寻找。一旦我删除了这一切都很好

答案 19 :(得分:0)

周五套餐工作正常,办理登机手续并回家。周一打开它,到处都是错误。 “在变量集合中找不到连接管理器变量$ project._connectionstring”。

我rtclick-编辑连接和测试连接,没有任何问题; em。 ConnMnger位于解决方案的“连接管理器”列表中。打开连接到此连接管理器的TARGET对象,然后单击MAPPINGS时,会弹出上面的错误。映射中的任何位置都没有引用连接管理器变量。

事实证明,要纠正此问题,您必须在Connection Manager窗口中右键单击连接管理器,然后选择PARAMETERIZE。根据需要填写选项 -

PROPERTY:ConnectionString 使用Exisgint参数:$ Project :: ConnMgrName_ConnectionString   要么 创建新参数:按照选项

一旦这个连接管理器被参数化,一切正常。即使Conn Manger存在于Conn Manger选项卡中,Conn Mgr已经在解决方案资源管理器中列出,并且在2天前没有遇到任何问题。

奇。随你。微软是微软。 SQL Server是SQL Server。选择你的毒药。

希望这有助于下一个人节省一些时间。

答案 20 :(得分:0)

我为解决这个问题所做的很简单。 我不得不重命名我的SQL Server,以便它响应(localhos)标记。 之后,我改变了SSIS上的所有连接,并重建了解决方案......它起作用了。 希望它可以帮到你