Instaluję usługę systemu Windows przy użyciu klas ServiceProcessInstaller
i ServiceInstaller
.
Użyłem ServiceProcessInstaller
do ustawienia typu uruchomienia, nazwy itp. Ale jak ustawić akcję odzyskiwania na Uruchom ponownie?
Wiem, że mogę to zrobić ręcznie po zainstalowaniu usługi, przechodząc do konsoli zarządzania usługami i zmieniając ustawienia na karcie odzyskiwania we właściwościach usługi, ale czy istnieje sposób, aby to zrobić podczas instalacji?
.net
windows-services
service
Promień
źródło
źródło
process.Close()
linia jest bezużyteczna.reset= 0
jest poprawna ireset=0
niepoprawna. Prawidłowe użycie spacji jestreset=
zatem kluczowe, to jeden argument, po którym następuje spacja0
.Po wielu próbach rozwiązałem to za pomocą aplikacji wiersza poleceń sc .
Mam plik wsadowy z installutil i sc. Mój plik wsadowy jest podobny do:
installutil.exe "path to your service.exe" sc failure "your service name" reset= 300 command= "some exe file to execute" actions= restart/20000/run/1000/reboot/1000
Jeśli chcesz uzyskać pełną dokumentację polecenia sc, kliknij to łącze: SC.exe: komunikuje się z kontrolerem usług i zainstalowanymi usługami
Uwaga: po każdym symbolu równości (=) należy dodać spację. Przykład: reset = 300
źródło
Nie sądzę, że jest to część interfejsu .NET API, ale może to pomóc:
Rozszerzenie ServiceInstaller, które umożliwia odzyskiwanie i konfigurację autostartu
Zainstaluj usługę Windows tak, jak chcesz! (Wersja C #)
źródło
Znalazłem następujący projekt, który zajmuje się tymi ustawieniami, używając tylko kodu i wywołań Win API:
http://code.msdn.microsoft.com/windowsdesktop/CSWindowsServiceRecoveryPro-2147e7ac
źródło