Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 SSIS包未正确拾取配置文件_Sql Server 2008_Ssis - Fatal编程技术网

Sql server 2008 SSIS包未正确拾取配置文件

Sql server 2008 SSIS包未正确拾取配置文件,sql-server-2008,ssis,Sql Server 2008,Ssis,我们最近已将SQL Server 2000中的大约30个DTS包迁移到SQL Server 2008中的SSIS包。我们创建包的方式是从配置文件中选择所有与环境相关的变量和其他所需信息,以便跨不同的环境(如Dev、QA和Prod)维护包 在使用配置文件设置所有包之后,当我们测试BusinessIntelligenceDevelopmentStudio中的包时,它运行良好,并从配置文件中获取了值。当将配置文件中的值更改为Dev或其他env时,它会正确地拾取值并执行。类似地,我们尝试了两种不同的环境

我们最近已将SQL Server 2000中的大约30个DTS包迁移到SQL Server 2008中的SSIS包。我们创建包的方式是从配置文件中选择所有与环境相关的变量和其他所需信息,以便跨不同的环境(如Dev、QA和Prod)维护包

在使用配置文件设置所有包之后,当我们测试BusinessIntelligenceDevelopmentStudio中的包时,它运行良好,并从配置文件中获取了值。当将配置文件中的值更改为Dev或其他env时,它会正确地拾取值并执行。类似地,我们尝试了两种不同的环境,这些软件包运行良好。所以我们部署了Prod,它工作得很好

昨天,我不得不对一个包进行功能更改,因此我在包中进行了更改(它只是更改SQL过程执行任务中的一个参数,与任何变量都不相关),并在两个环境中进行了测试,效果良好

由于更改与任何环境更改无关,我们仅在Prod中手动部署更新的包(而不是相关的配置文件)(即不使用清单)。该包以前使用的配置文件在Prod中运行良好,但该文件保持不变。但是当执行包时,包指向QA,我相信包没有从配置文件中读取

一个原因可能是,它通常仍然使用保留在.dtsx文件中的最后执行的值(可以通过在文本编辑器中打开该文件进行检查)。但通常,当执行包时,配置文件中的值将被覆盖。我猜这不会发生


可能的原因是什么?我们已经在测试环境之间进行了广泛的切换测试,但没有显示这种行为。我们已经在Prod环境中遇到过两次这种情况。其他人都经历过这种情况,您是如何解决的?

检查prod上的环境变量,可能有人为了测试某个东西而更改了它,但忘记了将其更改回来?

您是如何运行包的


我发现有效的方法是创建一个SQL代理作业,并在步骤属性中分配所需的配置文件。每个环境都有一个作业,配置文件的路径不同。

我们终于找到了解决这个问题的方法。在测试环境中运行包并对其进行测试后,我们将其指向Prod环境,并添加一个虚拟条件,使其在第一个任务中失败,然后执行包。通过执行此操作,.dtsx文件中存储的变量值将使用配置文件中的Prod值进行刷新。然后我们创建清单并部署它。但请记住,要删除导致第一个任务失败的虚拟条件。到现在为止它还在工作。如果我找到这个问题的实际解决方案,我会更新