我是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秒该 包执行失败。步骤失败了。
答案 0 :(得分:20)
我参加派对的时间有点晚了,但是在遇到相同的错误时遇到了这个问题并发现了不同的分辨率。
创建SSIS 2012包时,在“解决方案资源管理器”窗口中,您将看到项目级别的“连接管理器”文件夹。这似乎是创建连接的最合理的位置,应该在创建可以由项目中的任何包使用的连接时使用。它包含在项目级别,而不是包级别。
使用dtexec运行我的dtsx软件包时,我收到了上面显示的相同错误。这是因为包中没有包含连接(只是项目)。我的解决方案是进入包设计器,然后在Connection Manager窗口中,右键单击项目级连接(使用“(project)”前缀显示)并选择“Convert to Package Connection”。这将在实际的dtsx包中嵌入连接。这缓解了我的问题。
答案 1 :(得分:19)
您的ssis包似乎指向其他可能是deleted
或renamed
的连接。尝试打开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位
用于include / embed Connection
对于SQL SSIS目录/作业计划,请按照图片
中的步骤设置配置我试图逐步发布细节图片,但由于声誉,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上的所有连接,并重建了解决方案......它起作用了。 希望它可以帮到你