2008-11-04 20 views
1

我已经使用Sql Server商业智能开发工作室创建了一个dtsx包,并且正在使用dtexec实用程序执行它。使用dtexec我使用/ set开关在运行时设置了某些属性。所以我的命令看起来像这样:如何解决执行服务器上部署的包期间发生的错误?

dtexec /f "mypackage.dtsx" /set 
\Package.Connections[Destination].Properties[UserName];myUserName 

当我在我的本地系统(它开发的)上运行它时,它完美的工作。不幸的是,我这包复制到不同的系统,并尝试运行此完全相同的命令,我收到以下错误:

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. 

新系统,该包被转移到已安装SSIS和正在运行的同Sql Server版本作为我的本地系统(SP2)。也许我误解了dtsx软件包的用途,但我真的不知道这是怎么发生的。

回答

1

如果您需要在机器之间移动软件包,则需要创建部署实用程序。您的连接信息使用您的计算机专用密钥进行加密。

如果您转到VS中的项目属性,请选择部署实用程序部分并将CreateDeploymentUtility选项设置为true。这将在bin文件夹中创建部署实用程序,然后可以将所有内容复制到新计算机上,运行安装程序,并且所有工作都可以正常工作。

1

在机器之间移动包并避免包的所有签名的最快捷方式如下。

在Visual Studio中的包打开时,选择“PACKAGENAME的保存副本”作为

然后你得到一个向导了。最简单的一种可能就是选择文件存储。然后在向导的基础上,您会看到保护级别。选择使用密码加密敏感数据。输入密码。

在你想要将其移动到选择导入包的服务器上,它会提示你输入密码。输入它,您的连接信息将正确移动到新服务器。

绝对不是最佳实践,但它是在测试服务器周围快速移动东西的好方法。

+0

很好的解决方案,这也是我过去的做法。其快速和肮脏。 – 2009-01-19 17:28:02

1

在您的控制流属性上,有一个名为“ProtectionLevel”的属性。如果您将此设置为'DontSaveSensitive',那么在开发和测试时可能会导致您更少的头痛。对于需要安全性的生产场景,您可能需要找到其他解决方案。

6

此步骤是创建一个XML配置文件(.dtsConfig),它可以让你的敏感数据,如连接字符串的密码,而无需保护级别,可以让你很难把包从一台机器移动到另一个。

在此示例中,假设您有一个名为MyDb的SQL数据库的OLE DB连接。

  1. 控制流,物业:设置 “的ProtectionLevel” 到 “DontSaveSensitive”

  2. 控制流,右键单击空白区域获得菜单:单击 “包配置”

  3. 包配置管理:勾选“启用软件包配置”;点击“添加”

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

  5. 选择配置文件位置,填入“文件名”:[PackageName] .dtsConfig(如果文件夹和文件夹名称相同,只是扩展名不同)点击“保存”

  6. 包配置向导,选择配置类型:点击“Next>”

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

    \ [包名] \连接管理器\ mydb的\属性\连接字符串

    \ [包名] \连接管理器\ mydb的\属性\密码

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

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

  10. 解决方案管理器:右键单击根树菜单上,单击“添加”,“Existi ng Item ...“,单击[PackageName] .dtsConfig,单击”Add“

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

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

  13. 遍历XML树节点:\ DTSConfiguration \配置[路径=“\ Package.Connections [MYDB。属性[密码]“] \ ConfiguredValue;键入数据库密码;保存文件

  14. Windows资源管理器:浏览并双击[包名] .dtsx程序

  15. 执行包实用工具,配置,单击 “添加”,双击[包名] .dtsConfig,单击 “执行”

当需要将.dtsx移动到另一台机器时,只需使用它的.dtsConfig。希望这可以帮助。

Cheers,Ari。

相关问题