Sql-Server
如何在腳本組件中使用 HTTP 連接管理器?(不是腳本任務)
我正在嘗試執行與以下連結中相同的場景;創建一個 SSIS 腳本組件作為數據源,該組件使用預先存在的 HTTP 連接管理器通過 GET 檢索頁面並將行發送到數據流管道。
http://www.sqlis.com/sqlis/post/Downloading-a-file-over-HTTP-the-SSIS-way.aspx
我的目標平台是 SQL Server 2008,因此是 C#。MSDN 文件提供了文件和 SQL 連接管理器的範例,但沒有提供 HTTP 連接管理器的範例。
https://msdn.microsoft.com/en-us/library/ms136060%28v=sql.100%29.aspx
具體問題是我無法弄清楚為什麼在我目前的上下文中沒有 HttpClientConnection 建構子。該類的 MSDN 文件似乎不適用於腳本組件,並且將其轉換為有用的東西顯然超出了我的範圍。
我的非工作程式碼如下所示 -
using System; using System.Data; using System.Text; using Microsoft.SqlServer.Dts.Pipeline.Wrapper; using Microsoft.SqlServer.Dts.Runtime.Wrapper; [Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute] public class ScriptMain : UserComponent { public override void AcquireConnections() { IDTSConnectionManager100 connMgr = this.Connections.MyWebServer; } public override void PreExecute() { base.PreExecute(); HttpClientConnection clientConn = new HttpClientConnection(connMgr)); Byte[] buffer = clientConn.DownloadData(); String Document = Encoding.ASCII.GetString(buffer); }
我錯過了什麼?
我知道這個問題已經有一段時間了,但我找到了一個可能的解決方案。
此連結提供了有關如何使用為 SSIS 中的腳本組件啟用的連接管理器中可用連接的說明和範例https://msdn.microsoft.com/en-us/library/ms136060.aspx
[我們感興趣的程式碼部分是這樣的:
IDTSConnectionManager100 connMgr; HttpClientConnection100 hcc; IDTSComponentMetaData100 compMetadata = this.ComponentMetaData; //Just for output purposes. connMgr = this.Connections.MyWebServer; hcc = (HttpClientConnection100)cm.AcquireConnection(null); compMetadata.FireInformation(1, "Message: ", "URL: " + hcc.ServerURL + " User: " + hcc.ServerUserName + " Pwd: " + hcc.GetServerPassword(), "", 0, ref fail); ```](https://msdn.microsoft.com/en-us/library/ms136060.aspx)