2010-02-24 13 views
5

Muszę sprawdzić, czy moja usługa okienna działa, czy nie, co 15 minut.Sprawdź, czy działa usługa Windows?

Jeśli nie jest uruchomiony, to w jaki sposób mogę ponownie uruchomić usługę Windows?

+0

Z inną usługą Windows? –

+0

Nie w usłudze – user280154

+0

Nie wiem, jak mam usługę okna i próbowałem go uruchomić, jeśli nie działa, ale nie jestem w stanie to zrobić – user280154

Odpowiedz

15

Można sprawdzić, czy usługa jest uruchomiona z ServiceController:

ServiceController sc = new ServiceController("servicename"); 

if ((sc.Status.Equals(ServiceControllerStatus.Stopped)) || 
    (sc.Status.Equals(ServiceControllerStatus.StopPending))) 
{ 
    // Start the service if the current status is stopped. 
    sc.Start(); 
} 

Oczywiście, trzeba będzie nazwać to z innej usługi lub utwórz go jako małego programu, który następnie można zaplanować, aby uruchomić co 15 minut.

+0

dzięki za ans, ale to zrobiłem, ale gdy jest zatrzymany sc.start() daje błąd, ponieważ nie może uruchomić usługi na nazwie komputera ".". – user280154

+0

@user: Ow, ale to jest inny problem. Dziennik zdarzeń powinien pokazywać więcej szczegółów o tym, dlaczego usługa nie może się uruchomić. – fretje

+0

Sprawdź, czy usługa Windows nie jest uruchomiona, ten kod nie będzie działał poprawnie, więc sprawdź, czy usługa jest uruchomiona czy nie dla tej usługi Windows. – user280154

2

Jeśli usługa nie działa, nie może sam sprawdzić.

Będziesz musiał użyć drugiej usługi, która sprawdza.

+0

prawo, które było ans szukałem teraz moje następne pytanie będzie można użyć wątku, aby to zrobić, jeśli tak, to jak mogę zrobić wątek z bieżącej usługi, jeśli możesz udostępnić dowolną stronę, która wyjaśnia, że ​​byłoby bardzo docenione. – user280154

+0

@ user280154 - Proszę zadać pytanie wątku jako nowe pytanie.I nie zapominaj, aby _accept_ odpowiedź (kliknij znak wyboru obok odpowiedzi, którą lubisz). – Oded

11

Nie potrzeba dodatkowego procesu, aby odzyskać swoją usługę:

Jeśli chcesz mieć pewność, że usługa Windows jest zawsze uruchomiony, należy sprawdzić jego właściwości w zakładce odzyskiwania. Ustaw wszystkie niepowodzenia na "Uruchom ponownie usługę" i ustaw "Uruchom ponownie usługę po" na 0 minut. W chwili zniknięcia usługi natychmiast zostanie uruchomiona ponownie. Zwiększenie limitu czasu, jeśli jest ok poczekać nieco dłużej przed ponowne uruchomienie odbywa się:

Service Recovery settings http://www.robvangroenewoud.com/images/service_recovery.png

1

Wbudowana funkcjonalność systemu Windows Usługi naprawy (patrz zrzut ekranu w poście Roba powyżej) będzie prawdopodobnie zaspokojenia swoich potrzeb. Jeśli nie, sugeruję wypróbowanie wersji Service Protector, która jest przeznaczona do automatycznego utrzymywania ważnych usług Windows przez 24 godziny na dobę, 7 dni w tygodniu.

Powiązane problemy