使用带有加密连接字符串的Application.LoadFromSqlServer()加载SSIS包

时间:2013-04-26 13:03:30

标签: c# .net sql-server ssis dts

我正在使用

var app = new Application();
var pkg = app.LoadFromSqlServer(ConfigurationManager.AppSettings["SSISPackagePath"],
                                ConfigurationManager.AppSettings["SqlHost"],
                                ConfigurationManager.AppSettings["SqlUser"],
                                ConfigurationManager.AppSettings["SqlPass"], null);

从sql server加载SSIS包以在应用程序中使用。

使用DTS命令,它需要一个带密码的/DECRYPT选项来解密存储在包中的敏感信息。

没有密码我收到以下错误消息:

  

ADO NET Destination无法获取连接   {DB515DE9-B006-4BFC-AC53-ABED0B77183C}。连接可能已经   损坏。

     

组件“ADO NET Destination”(841)验证失败并返回   错误代码0xC0208452。

如何使用C#将解密密码传递给包,以便它可以无误地执行?

1 个答案:

答案 0 :(得分:1)

您是否尝试过Application.PackagePassword setter属性? 链接到文档:http://technet.microsoft.com/en-us/library/microsoft.sqlserver.dts.runtime.application.packagepassword.aspx

在这个SO问题中也提到了这种方法:How can I execute a package with a package password in SSIS through code?
NB根据该链接,您必须在加载包之前在应用程序上指定密码。