В моем ответе на этот вопрос приведены пошаговые инструкции по созданию службы Windows в C #.
Мой ответ на этот вопрос показывает, что вам нужно изменить службу, чтобы она могла устанавливать и удалять себя из командной строки.
InstallUtil.exe входит в состав .NET начиная с версии 1.1, поэтому он должен быть в вашей системе.Однако вы, скорее всего, не сможете использовать его из «обычной» командной строки.Если у вас установлена Visual Studio, откройте командную строку Visual Studio.Это определит соответствующие переменные среды, которые делают InstallUtil доступным без указания пути.
Обратный вызов OnStart()
дает вам возможность запустить бизнес-логику вашего сервиса.Если вы ничего не сделаете в обратном вызове OnStart()
, ваша служба будет немедленно закрыта.Как правило, вы запускаете поток, который выполняет интересующую вас работу. Вот небольшой пример, чтобы показать вам, как он выглядит.
private static System.Timers.Timer _timer;
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
// Write a message to the event log.
string msg = String.Format("The Elapsed event was raised at {0}", e.SignalTime);
EventLog.WriteEntry(msg, EventLogEntryType.Information);
}
protected override void OnStart(string[] args)
{
// Create a timer with a 10-econd interval.
_timer = new System.Timers.Timer(10000);
// Hook up the Elapsed event for the timer.
_timer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
// Signal the timer to raise Elapsed events every 10 seconds.
_timer.Start();
}
protected override void OnStop()
{
// Stop and dispose of the timer.
_timer.Stop();
_timer.Dispose();
}
Выполнение чего-то подобного эффективно поддержит работу вашего сервисапока он не выключится.Надеюсь это поможет.