2010-05-20 4 views
2

У меня есть пакет SSIS, который я планирую развернуть на моем компьютере с SQL Server 2008.Развертывание и вызов пакета SSIS из .NET

Мне нужно отправить этот пакет SSIS удаленно и синхронно с .NET. Очевидно, мне нужно передать параметры этому пакету.

Как я мог это сделать?

Спасибо, Alex

ответ

0

Если Ваш SQL сервер находится в среде безопасности Вы можете попробовать сделать SSIS пакет работоспособным из Stred процедуры, тогда я думаю, что ваш код может легко вызов хранимой процедуры на сервере SQL.

Учитывая, что вы должны включить xp_cmdshell (по крайней мере, так же, как я знаю, для SQL2005), который всегда упоминается как опасная задача в соответствии с безопасностью сервера.

3

Вы можете сделать работу, а затем начать работу с прямого SQL, используя sp_start_job. Это будет асинхронно.

Запуск на сервере, он должен будет иметь доступ к любым файлам, которые вы, возможно, читаете или записываете (ему также понадобится пакет), поэтому, если вы создаете код из шаблона или что-то еще , получение его на сервере может быть проблемой).

Вы также можете использовать psexec для запуска процесса на любом удаленном сервере. В этом случае он должен был запустить dtexec. Это заставит вас включить xp_cmdshell. (такая же проблема с необходимостью просмотра пакета и просмотра любых файлов)

+0

Это похоже на то, что я лично использовал, столкнувшись с этой задачей. Я также должен был написать маршрутизацию для опроса, если работа все еще работает - чтобы сделать ее синхронной - она ​​оказалась простой хранимой процедурой. Я пробовал оба подхода к sp_start_job и psexec (и планировщик задач Windows с командой schtask), и все они работают в зависимости от вашего конкретного сценария, требований и инфраструктуры. –

+0

Другие ответы здесь http://stackoverflow.com/questions/273751/how-to -execute-ан-SSIS-пакет-из-нетто/26012658 # 26012658 – Faiz

0

Другой способ - написать простое приложение, отображающее веб-службу, которая позволяет выполнять пакеты. В SQL Books Online есть хороший образец.