В SSIS нет стандартной задачи управления потоком для загрузки файла по HTTP. Я попытался несколько обходных путей ( Выполнить процесс wget , Задача сценария HttpClientConnection ), но пришел к выводу, что наиболее надежный и многократно используемый способ выполнить эту задачу - создать пользовательский компонент .
Я пытался сделать это, следуя руководству Рэя Горски , но столкнулся с проблемой в моей среде разработки.
Проблема в том, что Visual Studio 2008 не распознает пространство имен Microsoft.SqlServer.Dts
. Он жалуется сообщением об ошибке «Тип или имя пространства имен« Dts »не существует в пространстве имен« Microsoft.SqlServer »(отсутствует ссылка на сборку?)».
Я нашел совет на форуме MSDN , в котором говорится, что вы можете добавить ссылку, добавив сборку ManagedDTS.dll
, найденную в C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\
, но этот каталог не существует в моей системе. Я думаю, это потому, что я использую SQL Server 2008, а не SQL Server 2005.
Как мне решить эту проблему?
Вот мой код, основанный на примере из руководства Рэя Горски. Здесь нет кода для выполнения моей задачи, просто пустая заглушка, которая не компилируется.
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
{
}
}
Вот скриншот ошибок, которые я вижу, когда пытаюсь его скомпилировать: