Как и в следующей ссылке, можно остановить, запустить и "остановить, а затем запустить" службу с использованием кода С#.
http://www.csharp-examples.net/restart-windows-service/
Я испекла службу .NET, которая реализует OnStart
и OnStop
. Тем не менее, мне нужно реализовать функциональность "умного перезапуска", которая более активна, чем просто остановка и запуск. Мне нужно сохранить простои всего на несколько секунд, если это произойдет (но Stop + Start может принимать минуты в этом случае, когда это делается чисто, и я должен сделать это чисто), и наличие некоторых частей системы доступно, в то время как другие перезагружаются/обновляются.
Короче говоря - прежде чем я вступлю в реализацию этой функциональности OnSmartRestart
, я хочу убедиться, что есть достаточно простой способ вызвать этот вызов из другого приложения С#.
Эта функция важна, но опасна. Я хочу сделать его достаточно скрытым, несколько безопасным, а также сохранить его простым и убедиться, что это оказывает незначительное влияние на производительность моего Windows-сервиса, в то время как он выполняет обычные обязанности и не перезагружается.
Если мне нужно опросить какой-нибудь файл или открыть порт и потратить слишком много CPU на это, это не будет хорошим решением. Я также хочу сохранить это КАКОЙ-ЛИБО КАК ВОЗМОЖНО (извините за повторение).