SSIS中沒有用於通過HTTP下載文件的標準控制流任務。我嘗試了一些解決方法(Execute Process wget,Script Task HttpClientConnection),但得出的結論是,執行此任務的最健壯且可重用的方法是創建自定義組件。無法編譯SSIS組件;在Visual Studio 2008中丟失程序集
我試圖通過以下Ray Gorski's guide來做到這一點,但在我的開發環境中遇到了問題。
問題是Visual Studio 2008不能識別Microsoft.SqlServer.Dts
命名空間。它抱怨錯誤消息「名稱空間'Microsoft.SqlServer'中不存在類型或命名空間名稱'Dts'(你是否缺少程序集引用?)」。
我在the MSDN forum上發現了一條建議,說您可以通過添加在C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\
中找到的程序集ManagedDTS.dll
來添加參考,但該目錄在我的系統中不存在。我認爲這是因爲我正在使用SQL Server 2008而不是SQL Server 2005.
如何解決此問題?
這是我的代碼,它基於Ray Gorski的指南中的示例。這裏沒有任何代碼可以完成我的任務,只是一個空的存根,不能編譯。
using System;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Runtime.Design;
namespace HTTPControlTask
{
[DtsTask(
Description = "HTTP",
DisplayName = "HTTP",
TaskContact = "Iain Elder",
TaskType = "SSIS Help Task",
RequiredProductLevel = DTSProductLevel.None)]
public class HTTPControlTask : Task, IDTSComponentPersist
{
}
}
下面是錯誤截圖我看到,當我嘗試編譯:
感謝您的鏈接,西瓦。現在使用'HTTPClientConnection'很好,因爲我設計的兩個軟件包只從一個文件下載所有的數據。但還有一些其他軟件包必須提出多個HTTP請求才能提取所有數據,因此我將考慮使用WebClient來完成此任務。 –