Process.Start не работает при вызове из службы Windows

В Windows 8 я запускаю службу Windows. Предполагается, что эта служба запускает программу с помощью

Process.Start(exePath);

Но процесс немедленно завершается - даже первая строка в главной процедуре не выполняется. Раньше, при запуске одного и того же процесса в одной службе в Windows 7, все работало нормально.

Как я могу заставить его работать снова? Как правильно запустить процесс из службы Windows?

Ответ 1

Нашел решение. Процесс должен быть запущен следующим образом:

ProcessStartInfo info = new ProcessStartInfo(exePath);
info.CreateNoWindow = true;
info.UseShellExecute = false;
Process.Start(info);

По какой-то причине возникают проблемы с привилегиями при создании окна оболочки на фоне SYSTEM.

Ответ 2

Использовать метод WaitForExit в вашем экземпляре Process будет инструктировать, чтобы ждать, пока не истечет время или процесс не вышел.

Подробнее см. ссылку на MSDN.