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.