Vous pouvez toujours créer un hybride service/application console et utiliser l'application console à des fins de test.
Ce que vous devez faire est quelque chose comme ça - dans votre program.cs
, modifiez le Main
pour exécuter le service ou éventuellement l'exécuter en tant qu'application console :
static class Program
{
static void Main(params string[] args)
{
string firstArgument = string.Empty;
if (args.Length > 0)
{
firstArgument = args[0].ToLowerInvariant();
}
if (string.Compare(firstArgument, "-console", true) == 0)
{
new YourServiceClass().RunConsole(args);
}
else
{
ServiceBase[] ServicesToRun = new ServiceBase[] { new YourServiceClass() };
ServiceBase.Run(ServicesToRun);
}
}
puis sur votre classe de service, qui hérite de ServiceBase
et a le OnStart
et OnStop
, ajoutez le RunConsole
méthode comme ceci :
public void RunConsole(string[] args)
{
OnStart(args);
Console.WriteLine("Service running ... press <ENTER> to stop");
//Console.ReadLine();
while (true)
{ }
OnStop();
}
Maintenant, si vous voulez exécuter l'application pour tester ses fonctionnalités, lancez simplement l'EXE avec une -console
paramètre de ligne de commande et placez un point d'arrêt dans RunConsole
méthode.