2015-06-10 3 views
0

Мне нужно удаленно выполнить пакет SSIS, расположенный в хранилище пакетов SSIS, из приложения C# .net.Какой метод следует использовать для удаленного запуска пакета SSIS из приложения .net?

Приложение расположено на отдельном сервере, сервисы интеграции не могут быть установлены на сервере приложений.

У меня есть функциональность, работающая на моей машине dev, только используя метод файловой системы, потому что я установил службы интеграции, чтобы запустить ее. Теперь мне нужно перевернуть его, чтобы вызвать пакет удаленно.

Прямо сейчас я использую следующее:

pkg = app.LoadFromDtsServer("\loadfile", "DBServer", Nothing) 

Но я получаю следующее сообщение об ошибке:

«Подключение к службе Integration Services на компьютере„DbServer“не удалось из-за ошибки : «Доступ запрещен». По умолчанию только администраторы имеют доступ к службе Integration Services. В Windows Vista и более поздних версиях процесс должен выполняться с правами администратора, чтобы подключиться к службе Integration Services. См. Раздел справки для получения информации о том, как настроить доступ к службе ».

Конечно, пользователь, запускающий это приложение в производстве, не получит таких прав на сервере базы данных. Как я могу сделать этот запуск в качестве пользователя sql? Правильно ли это? Есть другие варианты, я знаю. Пакет не обязательно должен храниться в хранилище пакетов, но я считаю, что это лучшая практика.

Следует также упомянуть, что приложение передает имя файла через переменную пакета, поэтому любое решение также нуждается в возможности сделать это. Я не уверен, как это сделать, если я создам задание для запуска пакета.

+0

Я имел успех при этом создавая задание, которое вызывает пакет, и запуск задания с помощью команды sql из .net. –

+0

Не могли бы вы поделиться, если бы вы передавали переменную с помощью этого метода? Если да, то как вы это делали? –

+0

Конечно. Я создал таблицу JobHistory, содержащую столбец для каждой переменной, которая должна быть передана в пакет. Приложение .net будет запускать команду sql, которая вставила бы строку в эту таблицу, а затем она начнет работу. Первым шагом пакета было чтение переменных из последней строки таблицы. Последний шаг состоял в том, чтобы обновить таблицу и установить столбец «JobResult» для «успеха» или другого сообщения. –

ответ

0

Если вы передаете параметры из приложения .NET в пакет SSIS, проверьте следующую ссылку опций:

How to execute an SSIS package from .NET?

Если не передается никаких параметров, то проще подход будет добавить пакет SSIS для задания, а затем вызов задания из приложения .NET. Следующая ссылка дает пример кода:

http://www.roelvanlisdonk.nl/?p=1736

+0

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

 Смежные вопросы

  • Нет связанных вопросов^_^