【问题标题】:What would cause SSIS to ignore Package Configuration Connections?什么会导致 SSIS 忽略包配置连接?
【发布时间】:2015-08-28 03:08:05
【问题描述】:

我有一个非常简单的 SSIS 包,它在连接管理器部分定义了 2 个连接。 MS Access 数据源和 MS SQL 数据源目标。这个包所做的只是截断 SQL 目标中的表并将数据从 MS Access 导入 SQL 表。这在 VS2013 的开发过程中按预期工作。

现在,我还为包启用了包配置,并在 C: 驱动器根目录的文件夹中有几个 XML 配置文件(每个连接 1 个)。配置文件连接因它们所在的服务器而异,但文件夹结构存在于两台服务器上,因此包可以针对运行它的服务器执行。

我已选中该框以启用包配置并将包部署到 2 个不同的服务器。 1个用于开发,另一个用于QA。当我通过我的开发服务器上的 SSMS 集成包执行来执行包时,包使用了 Development 表。但是当我在我的 QA 环境中执行相同的包时,它也使用了 Development 表。

由于开发连接是通过连接管理器嵌入到包中的连接,因此看起来(可能无论如何)包正在使用嵌入式连接并忽略配置文件。

我已经在“配置”部分的“执行包实用程序”中明确添加了配置文件的路径,以查看它是否有任何区别,但结果是相同的。配置文件未被确认。因此,似乎该包再次使用了配置管理器中定义的嵌入式连接。

我想我“可能”能够从连接管理器部分的包中删除连接,并在设计时关闭验证,然后再次部署以强制包使用配置文件,但这并没有似乎是要走的路,充其量是一个黑客;前提是它甚至可以工作。

并不是说我认为它应该有所作为,而是为了提供更多细节,这里是关于我的服务器配置的更多信息:

开发 - SQL 2014 [服务器名称] 质量保证 - SQL 2014 [ServerName][InstanceName]

我不记得以前有过这个问题,因此我发帖的原因。

【问题讨论】:

  • 我的第一个猜测是你在设置配置使用时犯了一些错误,只是还没有发现。

标签: sql sql-server ssis


【解决方案1】:

好的,因为我的工作是在最后期限内工作;我希望早日得到答案。但由于情况并非如此,而且因为我之前看到过这个问题的变体而没有明确的答案(至少为了满足这种情况),所以我进行了一些测试,并将其发布给可能也需要此信息的其他人。

即使在 SSIS 包中启用了包配置,以下条件也会忽略配置文件的使用。这些发现基于实际测试并确认适用于 SQL 2014,尽管之前的版本也可能适用。

免责声明:这些测试侧重于与实际服务器连接相关的配置文件。 (例如连接字符串)而不是任何其他变量,尽管可以想象配置文件中的任何其他值也会受到影响。

  1. 在连接到集成服务组件并选择运行包时从 SSMS 中执行包。值得注意的行为是,在部署到服务器之前获取的任何 Connection 值都是将要使用的值;与配置文件无关

    注意: 即使在执行之前在“配置”部分添加了配置也是如此。虽然有提到配置没有导入,也无法编辑;事实上,它们在测试期间都没有使用。

  2. 如果 SQL 作业的类型为 SQL Server 集成服务包,并且实际上没有将配置文件引用添加到“配置”选项卡,则作业将在之前的 BIDS 中最后一次构建期间使用的任何值下执行的值部署(嵌入值)

  3. 如果包使用了多个配置文件,但在作业的“配置”选项卡中省略了一些配置文件;该作业将使用那些指定的配置文件,但对于那些不存在于作业上下文中的那些,将默认使用开发中使用的最后一个值(嵌入值)

其中一些行为不是很明显,当有人期望遵循大多数在线教程的规则来使用包配置文件时,我想这可能是一个令人沮丧的难题;会有预期的更直接的结果。

我知道为我确定根本原因是一项耗时的测试任务,尽管我不是专家;我当然不是 SSIS 的新手。

无论如何,我希望这对其他人的工作和调查有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-12
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    相关资源
    最近更新 更多