首页 文章

包中未找到SSIS连接

提问于
浏览
19

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

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

这是错误:

代码:0xC001000E来源:说明:找不到连接“” . 如果找不到特定的连接元素,Connections集合将抛出此错误 . 结束错误错误:2012-08-09 00:21:06.25代码:0xC001000E源:包描述:找不到连接“” . 如果找不到特定的连接元素,Connections集合将抛出此错误 . 结束错误错误:2012-08-09 00:21:06.25代码:0xC001000E源:包描述:找不到连接“” . 如果找不到特定的连接元素,Connections集合将抛出此错误 . 结束错误错误:2012-08-09 00:21:06.25代码:0xC00291EB源:执行SQL任务执行SQL任务描述:连接管理器“”不存在 . 结束错误错误:2012-08-09 00:21:06.25代码:0xC0024107源:执行SQL任务描述:任务验证期间出错 . 结束错误DTExec:程序包执行返回DTSER_FAILURE(1) . 开始时间:00:21:04完成时间:00:21:06经过:1.888秒包执行失败 . 步骤失败了 .

20 回答

  • 19

    看来您的ssis包指向其他可能已经 deletedrenamed 的连接 . 尝试打开SSIS组件并指向连接管理器中的正确连接 .

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

  • 0

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

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

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

  • 0

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

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

  • 4

    感谢您发布此问题 .

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

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

    祝好运 .

  • 0

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

  • 0

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

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

  • 0

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

  • 19

    套餐周五工作正常,入住TFS并回家 . 周一打开它,到处都是错误 . “在变量集合中找不到连接管理器变量$ 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 . 选择你的毒药 .

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

  • 0

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

  • 0

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

  • 0

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

  • 0

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

  • 0

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

    SOLUTION:

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

    • 用于include / embed连接

    • 打开包裹

    • 右键单击连接

    • 选择"Convert to project"选项

    • forSQL SSIS目录/作业计划设置配置,如下图所示

    • 右键'SQL JOB->步" or " SSIS目录 - >包 - >执行" and select "属性“

    • 选择配置 - >高级选项卡

    • 检查了32位运行时

    我试图逐步发布细节图片,但由于声誉,Stack Overflow不允许这样做 . 希望我稍后会更新这篇文章 .

  • 2

    这个解决方案对我有用:

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

  • 0

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

  • 3

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

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

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

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

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

  • 0

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

  • 0

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

  • 0

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

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

    我测试了这个没有或没有参数化连接字符串,这是在项目级别 . 结果是一样的:即我必须设置参数的值,即使它没有被使用 .

  • 4

    我有同样的问题 .

    我使用项目级连接管理器,我的软件包在SSDT中正确运行,但是当我部署它们并通过带有sql server agent的作业执行它时,我得到“未找到连接”错误 .

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

相关问题