29. juni 2003 - 15:46Der 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.
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!! :)
Synes godt om
Ny brugerNybegynder
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.