SSIS 在 运行 位于与构建位置不同的服务器上时不使用配置

SSIS not using configuration when it is run on different server than where it was build

我已经在服务器(假设 A)上构建了 SSIS 包,在 XML 中定义了它的配置。我已经将包和配置文件复制到不同的服务器(假设 B),并使用如下的批处理命令 运行 它:

echo "Running SSIS Load" >D:\samplessis\log\Mylog.log dtexec.exe /f "D:\samplessis\ag_data_import.dtsx" /CONFIGFILE "D:\samplessis\config\AgDataLoad.dtsConfig"  /MAXCONCURRENT " -1 "  /CHECKPOINTING OFF >>D:\samplessis\log\Mylog.log

这个包似乎使用了包中定义的配置,而不是 xml(配置文件)

当在 MSSQL 2008 R2 或更高版本中为 DTEXEC 提供 XML 配置文件时,它会在 运行:

时按此顺序自行配置
  1. 该实用程序首先应用设计时配置。
  2. 该实用程序随后会应用您在 启动实用程序时的命令行。
  3. 最后,该实用程序重新加载并重新应用设计时配置。

(来源:https://technet.microsoft.com/en-us/library/bb500430(v=sql.105).aspx

这意味着运行时间包中的配置是设计-XML-设计。如果您要更改 XML 文件的内容和 运行 开发箱上的 DTEXEC 命令,您会得到相同的结果...

要解决这个问题,在设计器中设置配置后,清除初始值。例如,如果您有一个连接字符串作为参数,设计连接管理器,将连接字符串添加到 XML 文件,然后在连接管理器的属性中,清除连接字符串。

当设计时没有指定值时,设计器将根据 XML 文件进行自我配置,并在 运行 时使用 DTEXEC 应用该 XML 文件.