Avatar billede brian0905 Nybegynder
29. juni 2003 - 15:46 Der er 2 kommentarer og
1 løsning

Genstart af windows service

Hvordan genstarter man en windows service, jeg har forsøgt med nedenstående kode, men den giver en fejl: Unable to start service on computer '.':

public void RestartService(string theServiceName)
    {
        ServiceController myController = new ServiceController(theServiceName);
        if (myController.Status.Equals(System.ServiceProcess.ServiceControllerStatus.Stopped))
        {
            myController.Start();
        }
        if (myController.Status.Equals(System.ServiceProcess.ServiceControllerStatus.Running))
        {
            myController.Stop();
            myController.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.StopPending);
            myController.Start();
        }

    }
Det er som om den ikke venter som den skal men istedet for starter med det samme. Det er ikke noget problem at starte servicen hvis den er stoppet i forvejen. Hvis services kører så stopper den fint men jeg får den fejlmeddelelse når den så prøver at starte den igen.
Avatar billede brian0905 Nybegynder
29. juni 2003 - 16:48 #1
Fandt selv ud af det...
Avatar billede sekhmet_ds Nybegynder
30. juni 2003 - 07:40 #2
Hvad var problemet så?
Avatar billede stefan_v Nybegynder
07. januar 2004 - 23:41 #3
Til jer som, ligesom mig, så dette indlæg og tænkte Jaaaa! Det er lige hvad jeg skal bruge, men ikke noget svar på hvordan man gør - kommer fortsættelsen på Brian0905s løsning her...

Hans problem kunne have været at han prøvede at starte sin service før den var helt stoppet
[...]
myController.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.StopPending);
[...]

StopPending betyder at den er ved at stoppe - men ikke stoppet endnu. Det giver en fejl. I stedet skal han tjekke på om den er stoppet, altså med
[...]
(System.ServiceProcess.ServiceControllerStatus.Stopped);
[...]

Herunder er et eksempel på en metode, som genstarter en service - at lave ex start og stop skulle være ret simpelt ud fra den.

using System;
using System.ServiceProcess;

namespace Reboot
{
    public class Funktioner
    {
        public bool restartService(string service)
        {
            ServiceController myController = new ServiceController(service);
            if (myController.Status.Equals(ServiceControllerStatus.Stopped))
            {
                myController.Start();
                return true;
            }
            else if (myController.Status.Equals(ServiceControllerStatus.Running))
            {
                myController.Stop();
                myController.WaitForStatus(ServiceControllerStatus.Stopped);
                myController.Start();
                return true;
            }
            else
            {
                return false;
            }
        }
}}

Sorry  - men jeg gider ikke til at sætte det pænt op... Riv det ind i Visual studio, så er det pænt igen ;)

Jeg er ud af her - skal ud og start/stoppe/genstarte services!! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester