在SSIS包中,我有一个使用Http Connection Manager的Web Service任务。我需要为连接设置凭据,以便它将使用远程Web服务进行身份验证。我可以在设计时设置它们,但是我希望使用XML包配置文件将这些凭据提供给包。
问题是连接的凭据不会出现在可配置的属性中。我已尝试以编程方式设置此选项,但我似乎无法以这种方式访问凭据:
Dim webConnMgr As ConnectionManager = Dts.Connections("My web service")
Dim webConn As Wrapper.ConnectionManagerHttpClass = _
CType(webConnMgr.InnerObject, Wrapper.ConnectionManagerHttpClass)
webConn.?
有什么想法吗?
答案 0 :(得分:1)
SQL 2005具有非常有限的ConnectionManagerHttpClass成员属性。值得庆幸的是,它已在SQL 2008中得到解决:)
MSDN - SQL 2005 ConnectionManagerHttpClass properties.
<强> VS 强>
MSDN - SQL 2008 ConnectionManagerHttpClass properties.
根据this MSDN link,公共类[ConnectionManagerHttpClass]实现IDTSConnectionManager90,ConnectionManagerHttp。
由于我们假设您使用的是SQL 2005(根据您的Stackoverflow标记),您可能还想查看IDTSConnectionManager90.ConnectionString Property on MSDN。
另请查看ConnectionManagerHttpClass.ConnectionString Property on MSDN,它实现了IDTSConnectionManager90.ConnectionString并且可以覆盖。
这应该指向正确的方向。愿闹剧与你同在。
答案 1 :(得分:0)
听起来您需要将配置文件中的值分配给包中的变量。然后,您可以从脚本任务中访问该变量(Dts.Variables(“VariableName”)。如果我没记错的话,可以使用Value.ToString!)。
答案 2 :(得分:0)
我发现无法使用配置文件或以编程方式指定凭据,但解决方法是简单地将所有凭据(在设计器中设置)保存在包中,然后为包提供不同的副本每种不同的配置。这是通过将程序包的ProtectionLevel设置为例如EncryptSensitiveWithPassword来完成的。
这显然不太理想。
答案 3 :(得分:0)
SQL2008 SSIS正确公开这些属性;不幸的是,2005年是我必须与之合作的环境。我通过开发一个允许设置属性的自定义组件解决了这个问题。
答案 4 :(得分:0)
这可以通过将保护级别设置为EncryptSensitiveWithPassword来完成,并使用decrypt选项运行ssis