2009-06-18 48 views
1

在一個SSIS包中,我有一個使用Http連接管理器的Web服務任務。我需要爲連接設置證書,以便它可以使用遠程Web服務進行身份驗證。我可以在設計時設置它們,但是我希望使用XML包配置文件將這些憑據提供給包。如何使用配置文件設置SSIS Http Connection Manager憑據?

問題是,連接的憑據不會顯示在可配置的屬性中。我曾嘗試以編程方式設置這一點,但我似乎無法以這種方式無論訪問憑據:

Dim webConnMgr As ConnectionManager = Dts.Connections("My web service") 
Dim webConn As Wrapper.ConnectionManagerHttpClass = _ 
    CType(webConnMgr.InnerObject, Wrapper.ConnectionManagerHttpClass) 
webConn.? 

任何想法?

回答

0

聽起來像您需要將配置文件中的值分配給包中的變量。然後你可以從你的腳本任務(Dts.Variables(「VariableName」)。Value.ToString,如果我沒有記錯的話)訪問變量!)。

+0

精細運行SSIS,但遺憾的是沒有解決如何設置連接的憑據這些變量的值的問題。 – 2009-06-19 08:10:04

0

我找不到使用配置文件或編程方式指定憑據的方法,但是一種解決方法是將所有憑證(在設計器中設置)簡單地保存在包中,然後將包的不同副本爲每個不同的配置。這通過將軟件包的ProtectionLevel設置爲例如EncryptSensitiveWithPassword來完成。

這顯然不理想。

1

SQL 2005對ConnectionManagerHttpClass的成員屬性非常有限。值得慶幸的是它在2008年SQL :)

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並且是可覆蓋的。

這應該指向你正確的方向。願這場鬧劇與你同在。

0

SQL2008 SSIS正確公開這些屬性;不幸的是,2005年是我必須與之合作的環境。我通過開發允許設置屬性的自定義組件來解決該問題。

+1

既然你得到了賞金點,你能更好地闡述一下嗎? – D3vtr0n 2009-06-29 14:58:57

0

這可以通過設置保護級別設置爲EncryptSensitiveWithPassword來完成,而用解密選項