2015-10-20 13 views
7

Napisałem usługę systemu Windows, która działa i ROZPOCZNIE dobrze w większości systemów operacyjnych. Zawęziłem fakt, że Windows 10 uaktualniony z Windows 8 powoduje problem, w którym usługa nie uruchamia się po ponownym uruchomieniu, gdy usługa jest ustawiona na automatyczną. Uważam, że rozpoczęcie opóźnienia działa poprawnie. Zastanawiam się, czy ktoś wiedział o niuansach między instalacją od zera a aktualizacją, która może wskazywać na zawężenie tego nieuchwytnego problemu.Usługa systemu Windows nie jest uruchamiana po uaktualnieniu systemu Windows 10

Gdy nie działa, nie są generowane żadne dzienniki ani zdarzenia. Wygląda na to, że nie próbuje się zawieść - po prostu nie działa (start).


Właśnie natknąłem się na instalacji, w której działa dobrze i system operacyjny został uaktualniony z Win 8. Wydaje się, że niektóre zależność, że jest inaczej. Usługa została napisana przeciwko .Net Framework 4.0 x86. Usługa uruchamia się ręcznie po prostu dobrze. Automatyczne uruchamianie (przy rozruchu) nie działa. Już miałem powiedzieć, że to się nie udaje - ale tak nie jest, ponieważ wydaje się, że nawet nie próbuje.

+0

Wydaje się swoim założeniu jest _ „Jeśli uaktualnienia systemu Windows 8 Windows 10 swoje usługi na własny zainstalowane, które są ustawione na«Automatic»nie uruchamia się po ponownym uruchomieniu maszyny” _, co oczywiście nie jest prawdą. Gdyby tak było, byłby to ogromny problem, który inni napotkaliby przed tobą. Nie mogę uwierzyć, że nie wygenerowano pojedynczego komunikatu z dziennika zdarzeń. Czy jesteś tego pewien? – CodeCaster

+0

Nie ma ŻADNYCH zdarzeń wygenerowanych. – Jeff

+0

Mam dokładnie ten sam problem, który nie został jeszcze opracowany, w jakich okolicznościach jest odtwarzany. Dziennik systemu Windows pokazuje błąd przekroczenia limitu czasu, ale żaden z moich dzienników log4net nie jest tworzony. – msshapira

Odpowiedz

1

Mamy podobny problem, gdy jedna z naszych usług (.net) nie uruchamia się automatycznie w niektórych przypadkach po aktualizacji do systemu Windows 10. Ponadto w wielu sytuacjach problem został rozwiązany po aktualizacji do wersji Windows 10.0.10240 ; nie w każdym przypadku. Brak błędów w dzienniku zdarzeń.

Aktualizacja: opóźniony start również wydaje się działać w niektórych przypadkach.

3

Mieliśmy podobny problem z oknami 10, gdzie większość usług opartych na .Net nie powiedzie się na starcie, ale można uruchomić później ręcznie dobrze. Z jakiegoś powodu usługi napisane w .NET trwają dłużej, aby zacząć w systemie Windows 10. Domyślnie, jeśli usługa nie trwa dłużej niż 30 sekund, aby rozpocząć bez odpowiedzi, usługa jest kończona przez system Windows. Jest to opóźniony start, ale wydłużenie czasu przydzielonego usługom po uruchomieniu.

Udało mi się zmienić to zachowanie na 60 sekund w rejestrze. Przejdź do:

HKLM \ SYSTEM

\ CurrentControlSet \ Control \

Jeśli nie istnieje, utwórz wartość DWORD klucz (32-bitowy) o nazwie "ServicesPipeTimeout" (minus cudzysłowów). Ustaw jego wartość na 60000 (w systemie dziesiętnym). Koreluje to z 60 sekundami w milisekundach.

nawet stworzył regfile zautomatyzować ten:

systemu Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control] "ServicesPipeTimeout" = dword: 0000ea60

Wystarczy wkleić do notatnika i zapisać jako plik .reg.

Naprawiliśmy problem dla wielu maszyn. Daj mi znać, jeśli to pomoże. Niestety, wciąż nie wiem, dlaczego usługi .NET tak długo zaczynają, że zostają rozwiązane. Jednak czuję, że to jest błąd Microsoft, a niekoniecznie coś nam użytkownicy robią źle ...

+1

zamiast samodzielnie zmieniać rejestrację, jeśli użycie opóźnionego startu nie zadziała, możesz przejdź do właściwości usługi i spróbuj odzyskać usługę. w zakładce odzyskiwania masz opcje, co zrobić, gdy usługa się nie uruchomi. w rzeczywistości możesz spróbować uruchomić go ponownie z opóźnieniem ("zresetuj usługę po X minutach"). –

0

Mamy również ten sam problem z C++ usługi windows, który stworzyliśmy. Automatyczne uruchamianie działa dobrze dla większości ludzi.Mamy jednak 5 przypadków, w których usługa klienta działała poprawnie, a teraz nie uruchomi się automatycznie.

Wydaje się, że jedyną opcją jest ustawienie opóźnionego rozpoczęcia, ale nie jest to dobra opcja, ponieważ chcielibyśmy, aby usługa została uruchomiona natychmiast. Próbowaliśmy także dodać zależność od usługi NetLogon - która nie działała.

Należy również zauważyć, że to działało dobrze dla klientów iw pewnym momencie (może to być aktualizacja Windows?) Po prostu przestało się automatycznie uruchamiać.

Klienci mogą również korzystać z usług i uruchamiać usługę ręcznie, i to działa. Będę śledzić ten wątek i mając nadzieję na lepsze rozwiązanie niż opóźniony start.

0

Co ustalone to dla nas jest, czy można zmienić usługę wykonywalnego siebie:

W modyfikacji pliku Project Wolę 32-bitową flagę fałszywego, a następnie ponownie zainstalować usługę.

Sprawdź swoją usługę pod numerem CorFlags.exe. 32BITREQ i 32BITPREF powinno być 0.

Version : v4.0.30319 
CLR Header: 2.5 
PE  : PE32 
CorFlags : 0x1 
ILONLY : 1 
32BITREQ : 0 
32BITPREF : 0 
Signed : 0