如何修复在服务器上部署的程序包执行期间发生的错误?

sgi*_*ons 1 ssis sql-server-2005

我用Sql Server商业智能开发工作室创建了一个dtsx包,我正在使用dtexec实用程序执行它.使用dtexec我在运行时使用/ set开关设置某些属性.所以我的命令看起来像:

dtexec /f "mypackage.dtsx" /set 
\Package.Connections[Destination].Properties[UserName];myUserName
Run Code Online (Sandbox Code Playgroud)

当我在我的本地系统(它开发的那个)上运行它时,这非常有效.不幸的是,当我将此包复制到另一个系统并尝试运行这个完全相同的命令时,我收到以下错误:

Warning: The package path referenced an object that could not be found: 
\Package.Connections[Destination].Properties[UserName]. This occurs when an 
attempt is made to resolve a package path to an object that cannot not be found.
Run Code Online (Sandbox Code Playgroud)

移动包的新系统安装了SSIS,并且运行与本地系统(SP2)相同版本的Sql Server.也许我误解了dtsx软件包的预期用途,但我真的不知道这是怎么回事.

Ira*_*omo 6

此步骤用于创建XML配置文件(.dtsConfig),该文件可以保留敏感数据(如连接字符串的密码),而不具有可能使您难以将程序包从一台计算机移动到另一台计算机的保护级别.

在此示例中,假设您具有与名为MyDb的SQL数据库的OLE DB连接.

  1. 控制流,属性:将"ProtectionLevel"设置为"DontSaveSensitive"

  2. 控制流,右键单击空白区域以获取菜单:单击"包配置"

  3. 包配置管理器:勾选"启用包配置"; 点击"添加"

  4. 包配置向导,选择配置类型:将"配置类型"设置为"XML配置文件"; 选择"直接指定配置"单选按钮; 点击"浏览..."

  5. 选择配置文件位置,填写"文件名":[PackageName] .dtsConfig(如果文件包本身相同,文件夹和文件名相同,只是不同的扩展名); 点击"保存"

  6. 包配置向导,选择配置类型:单击"下一步>"

  7. 包配置向导,选择要导出的属性:遍历以下树节点并勾选其复选框; 点击"下一步>"

    \ [PackageName]\Connection Managers\MyDb\Properties\Connection String

    \ [PackageName]\Connection Managers\MyDb\Properties\Password

  8. 包配置向导,完成向导,单击"完成"

  9. 包配置管理器:单击"关闭"

  10. 解决方案资源管理器:右键单击菜单的根树,单击"添加","现有项目...",单击[PackageName] .dtsConfig,单击"添加"

  11. 解决方案资源管理器:双击\ Miscellaneous\[PackageName] .dtsConfig加载到编辑器中;

  12. 主菜单:单击"编辑",单击"高级",单击"格式化文档"

  13. 遍历XML树节点:\ DTSConfiguration\Configuration [Path ="\ Package.Connections [MyDb] .Properties [Password]"]\ConfiguredValue; 键入数据库密码; 保存文件

  14. Windows资源管理器:导航并双击[PackageName] .dtsx

  15. 执行包实用程序,配置,单击"添加",双击[PackageName] .dtsConfig,单击"执行"

当需要将.dtsx移动到另一台机器时,只需将其与.dtsConfig一起使用即可.希望这可以帮助.

干杯,阿里.