28

我是 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 秒。包执行失败。步骤失败。

4

20 回答 20

27

我参加聚会有点晚了,但我遇到了同样的错误并遇到了这个线程,并找到了不同的解决方案。

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

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

于 2014-06-25T22:28:21.490 回答
25

deleted您的ssis 包似乎指向了其他一些可能已经存在的连接。尝试renamed打开 SSIS 组件并指向连接管理器中的正确连接。

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

于 2012-08-09T01:26:25.887 回答
6

感谢您发布此问题。

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

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

祝你好运。

于 2013-10-01T15:29:31.843 回答
4

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

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

于 2013-02-20T14:46:27.533 回答
4

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

如果您正在使用项目级连接并且仍想使用 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 文件包含执行包所需的项目级连接信息,您应该进行设置!

于 2016-03-09T17:52:41.273 回答
3

就我而言,我发现问题是先前配置的日志提供程序指向不再使用的旧连接。要解决此问题,请单击 Package Explorer 选项卡,然后单击 Log Providers 并删除过时的 Log Provider。我希望这可以帮助别人。

于 2016-12-16T12:02:18.810 回答
0

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

于 2013-03-05T16:21:42.143 回答
0

周五包裹工作正常,签到 TFS 并回家。星期一打开它,到处都是错误。“在变量集合中找不到连接管理器变量 $project._connectionstring”。

我 rtclick-edit 连接并测试连接,没有问题。ConnMnger 位于解决方案的连接管理器列表中。打开连接到这个连接管理器的TARGET对象,点击MAPPINGS,就会弹出上面的错误。映射中的任何地方都没有对连接管理器变量的引用。

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

属性:ConnectionString 使用现有参数:$Project::ConnMgrName_ConnectionString 或创建新参数:遵循选项

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

奇怪的。任何。微软就是微软。SQL Server 是 SQL Server。选择你的毒药。

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

于 2013-10-28T15:06:16.717 回答
0

我有同样的问题,以上都没有解决。原来有一个旧的 sql 任务在我的 ssis 的右下角被禁用,我真的必须寻找才能找到。一旦我删除了这一切都很好

于 2014-11-14T19:13:42.537 回答
0

就我而言,其中一个事件处理程序任务指向已删除的旧连接,删除未使用的事件处理程序任务解决了问题。我最终以 XML 格式打开包,以了解问题出在事件处理程序任务上!

于 2015-05-06T07:17:18.547 回答
0

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

于 2015-05-06T15:43:01.513 回答
0

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

于 2015-07-28T19:30:04.667 回答
0

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

解决方案:

我的环境:SQL SERVER 2014 64bit Oracle Client 32 位

  1. 对于包含/嵌入连接

    • 开包
    • 右键单击连接
    • 选择“转换为项目”选项
  2. 对于 SQL SSIS 目录/作业计划设置配置按照图片中的步骤

    • 右键“SQL JOB->Step”或“SSIS Catalog-->Package-->Execute”并选择“Properties”
    • 选择配置-->高级选项卡
    • 检查 32 位运行时

我试图逐步发布详细的图片,但由于声誉原因,Stack Overflow 不允许这样做。希望我以后会更新这篇文章。

于 2015-08-17T09:29:53.927 回答
0

这个解决方案对我有用:

转到 SQL Server Management Studio,右键单击失败的步骤并选择 Properties -> Logging -> Remove the Log Provider,然后重新添加它

于 2015-11-03T14:17:57.790 回答
0

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

这是简短的答案。删除连接管理器,然后使用相同的名称重新创建它。确保使用该连接的软件包仍然正确连接,你应该一切顺利。如果您不确定如何执行此操作,我在下面提供了详细过程。

为了识别损坏的连接,我执行了以下操作。在 SSMS 中,我打开了 Integration Services Catalogs 文件夹,然后是 SSISDB 文件夹,然后是我的解决方案的文件夹,直到找到该项目的包列表。

通过右键单击失败的包,转到报告>标准报告>所有执行,选择最后一次执行,并查看“所有消息”报告,我能够隔离哪个连接失败。就我而言,连接管理器到我的目的地。我只是删除了连接管理器,然后重新创建了一个具有相同名称的新连接管理器。

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

于 2016-10-27T12:26:39.500 回答
0

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

于 2017-04-11T17:23:47.083 回答
0

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

于 2017-06-25T15:09:05.987 回答
0

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

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

我在没有或没有参数化连接字符串的情况下对此进行了测试,这是在项目级别。结果是一样的:即我必须设置参数的值,即使它没有被使用。

于 2018-07-09T15:27:17.720 回答
0

我有同样的问题。

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

所以我部署了项目,然后问题就解决了,当你使用项目级连接管理器但只从该项目部署一个包,并且你通过 sql server 代理调用包时,它无法识别你的连接管理器,所以你应该确定包级别的连接管理器,或者您应该首先部署您的项目。

于 2018-08-27T09:50:52.067 回答
0

这发生在我身上:不是由我创建的 SSIS 包在某些时候开始出现意外行为,例如给出 Connection not found -error,但我的任务是修复它。当我查看 SQL 代理作业下的作业步骤属性时,它显示没有正在使用的配置,并且数据源与它们应该是一样的。但是,错误消息指出了一些不同的东西。然后我打开有问题的 .dtsx 文件并注意到有包 conf。设置并在该包 conf. 文件是连接名称设置错误。所以我的建议是并排比较 .dtsx 和 .dtsConfig -files。

于 2019-10-02T09:24:33.243 回答