Ma réponse à cette question vous donne des instructions pas à pas pour créer un service Windows en C#.
Ma réponse à cette question montre que vous devez modifier le service afin qu'il puisse installer et désinstaller lui-même à partir de la ligne de commande.
InstallUtil.exe fait partie de .NET 1.1 depuis, il devrait donc être sur votre système. Cependant, vous ne pouvez probablement pas l'utiliser à partir d'une invite de commande "normale". Si vous avez Visual Studio installé, ouvrez l'invite de commande Visual Studio. Cela va définir les variables d'environnement appropriées qui rendent InstallUtil accessible sans informations de chemin. La fonction de rappel OnStart()
vous permet de démarrer la logique métier de votre service. Si vous ne faites rien dans le rappel OnStart()
, votre service s'arrêtera immédiatement. En règle générale, vous allez commencer un thread qui effectue le travail qui vous intéresse. Voici un petit exemple pour vous montrer à quoi il ressemble.
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();
}
Si vous faites quelque chose comme ceci, votre service sera effectivement maintenu jusqu'à ce qu'il s'éteigne. J'espère que cela t'aides.
un service Windows peut être juste un 'dll 'avec le début de l'application sur l'événement' OnStart'. Prenez soin de nous montrer plus ce que vous essayez de faire? – balexandre