Запуск процесса из службы windows на языке C#
Привет,
В настоящее время я пишу службу windows на C#, которая должна действовать как "сторожевой пес" для стороннего консольного приложения. Это приложение запускается из командной строки (без графического интерфейса или любого другого вида пользовательской интерактивности), запускает веб-сервер и должно запускаться автоматически после завершения загрузки машины (Windows Server 2019) без какого-либо входа пользователя. Однако я не могу найти способ фактически запустить приложение из моей программы, как только оно работает как служба windows (оно отлично работает при запуске из сеанса пользователя).
До сих пор у нас было приложение, работающее как сервис, использующий
sc create
без каких – либо проблем, но это делает обновление – то, что мой сервис должен автоматизировать, - довольно утомительным.Что я уже пробовал:
Сначала я попробовал "наивный" подход, просто используя
System.Diagnostics.Process.Start()
но это не сработало.После некоторого копания мне показалось, что виновником была какая-то форма неявного требования интерактивности, поэтому я попробовал их
ProcessStartInfo
параметры, которые я нашел, были предложены в ответ на старый вопрос, похожий на мойProcessStartInfo info = new ProcessStartInfo() { FileName = _configPath, Arguments = _configArgs, UseShellExecute = false, RedirectStandardError = true, RedirectStandardInput = true, RedirectStandardOutput = true, CreateNoWindow = true, ErrorDialog = false, WindowStyle = ProcessWindowStyle.Hidden }; _app = Process.Start(info);
но и это не сработало.
В этот момент я уже не в своей тарелке. Это мой первый раз, когда я пишу сервис на C#, и хотя вполне возможно, что я просто пытаюсь сделать невозможное, тот факт, что стороннее приложение, которое я пытаюсь запустить, смогло работать как сервис само по себе без каких-либо проблем, наводит меня на мысль, что должен быть способ сделать это.
Заранее спасибо за любой вклад!