как остановить службу Windows ошибка при закрытии - PullRequest
0 голосов
/ 19 сентября 2019

Я знаю, что службы Windows созданы, чтобы продолжать работать, но, к сожалению, мне нужно, чтобы мой сервис закрывался сам, я использую hostcontrol.stop (), чтобы остановить его.при отладке он останавливается без каких-либо исключений, но после установки, когда я запускаю свой сервис, он выполняет работу, которая должна быть выполнена, но когда заканчивается время, я получаю это сообщение об ошибке «некоторые сервисы останавливаются, если они не используются другими программами»Есть ли способ предотвратить появление этого сообщения?Это исключение или это касается всех служб Windows?

 static void Main(string[] args)
    {
        try
        {
            HostFactory.Run(x =>
            {
                x.Service<ServicePrincipal>();
                x.SetServiceName("myservice");
                x.SetDisplayName("myservice");
                x.SetDescription("myservice");
                x.StartAutomatically();
                x.RunAsLocalSystem();
            });

        }
        catch (Exception e)
        {
        }
    }

КЛАСС ОБСЛУЖИВАНИЯ:

    public bool Start(HostControl hostControl)
    {
        controleurHoteServiceWindows = hostControl;

        try
        {
            LOGGER.Warn("Démarrage du service");



            Demarrer(); //my treatement

            LOGGER.Warn("Fin de l'exécution du service.");
            hostcontrol.stop()

        }
        catch (Exception e)
        {
            LOGGER.Error("Exception détectée lors du démarrage du service", e);
            hostControl.Stop();
        }

        return true;
    }

    public bool Stop(HostControl hostControl)
    {
        try
        {
            LOGGER.Warn("Arrêt du service");



            LOGGER.Warn("Service arrêté");
        }
        catch (Exception e)
        {
            LOGGER.Fatal("Exception détectée lors de l'arrêt du service", e);

        }

        return true;
    }
...