Приложение Process.Start не запускалось правильно с DTExec

Я пишу инструмент, который позволяет администратору баз данных удаленно запускать пакет SSIS. Приложение представляет собой XBAP и было развернуто на SQL Server с пакетом SSIS на том же сервере. Я добиваюсь удаленного вызова пакета SSIS, выполняя DTExec удаленно на сервере (я открываю серверную служебную программу DTExec, а не локальную версию), работая от имени другого пользователя с помощью Process.Start.

Вот проблема, которую я получаю. При запуске приложения (с сервера) с моего рабочего стола оно работает абсолютно нормально. DTExec запускается, и выполняется пакет SSIS. Однако когда я перехожу к другому компьютеру в той же сети, я получаю сообщение об ошибке

The application was unable to start correctly (0xc0000143). Click OK to close the application.

Это произошло на нескольких компьютерах, но почему-то работает на моем.

Единственная разница между этими двумя компьютерами заключается в том, что на моем компьютере установлена ​​версия разработчика SQL Server (это означает, что у меня есть локальный инструмент DTExec, однако я не вызываю этот инструмент, путь к \\ сервер \ Microsoft SQL Server ... \ DTExec.exe).

Кто-нибудь знает, что здесь происходит?


person Aserian    schedule 24.03.2016    source источник
comment
Пожалуйста, используйте теги правильно, чтобы отправить свой вопрос в нужную группу. Этот вопрос относится к SSIS, но не к sql-серверу и С #.   -  person FLICKER    schedule 24.03.2016
comment
Хорошо, но я использую Process.Start, который является командой C #, не так ли? А приложение размещено на sql-сервере, тут ни при чем? Кроме того, утилита DTExec специфична для SQLServer ...   -  person Aserian    schedule 24.03.2016
comment
Вы можете использовать C # или командную строку или что-то еще, но проблемы связаны с DTExec, а не с вашим кодом C #. Похоже, чтобы ответить на ваш вопрос, необязательно знать C #. даже это может быть установка sql-сервера или сеть, но не С #   -  person FLICKER    schedule 24.03.2016
comment
Выяснили проблему, потому что я пытался запустить процесс от имени другого пользователя, используя StartInfo Process.Start. Единственным измененным кодом был C #. Хотя я ценю вашу попытку помочь сообществу, исключение возможности, когда это явно является частью проблемы, не помогает решить проблему.   -  person Aserian    schedule 24.03.2016


Ответы (1)


Нашел ответ в этом сообщении блога: http://asprosys.blogspot.ca/2009/03/perils-and-pitfalls-of-launching.html.

Для добавления учетных данных в Process.StartInfo требуется наличие разрешений на локальном компьютере, а также на сервере, на котором выполняется приложение и на котором находится приложение, которое вы пытаетесь запустить.

person Aserian    schedule 24.03.2016