Porównaj ceny domen i usług IT, sprzedawców z całego świata

Dlaczego moja usługa Windows BuildBot natychmiast wyświetla błąd 7000?


Ja siadam

BuildBot
https://buildbot.net
pracownik na maszynie wirtualnej z systemem Windows Server 2016 Datacenter Edition działającej na platformie Azure. Będzie to kompilacja naszego produktu Windows przy użyciu kompilatora Visual Studio C ++.
Doszedłem do punktu, w którym pracownik jest zainstalowany i działa w sesji administracyjnej na pulpicie. Łączy się z naszym głównym serwerem kompilacji i, sądząc po wynikach kompilacji testowych, może uzyskać dostęp do wszystkich niezbędnych narzędzi i usług.
Pracowałem nad tym, aby pracownik działał jako usługa. Spowoduje to automatyczne uruchomienie pracownika jako nieuprzywilejowanego użytkownika.
Tyle że ... usługa się nie uruchomi. Kiedy patrzę na dziennik zdarzeń, widzę dwa błędy w dziennikach Windows -> System:
  • Identyfikator zdarzenia: 7000 Usługa BuildBot nie została uruchomiona z powodu następującego błędu: Usługa nie odpowiedziała na żądanie uruchomienia lub kontroli w odpowiednim czasie.
  • Identyfikator zdarzenia: 7009 Przekroczono limit czasu (30000 milisekund) podczas oczekiwania na połączenie usługi BuildBot

Żadne zdarzenia z samego BuildBota nie są rejestrowane w „Dziennikach systemu Windows -> Aplikacja”, a te zdarzenia są rejestrowane (a usługa jest rejestrowana jako awaria) natychmiast po próbie jej uruchomienia.
Usługa jest obecnie skonfigurowana do działania jako „System lokalny” (później planowałem ograniczyć prawa dostępu). Z tego, co rozumiem, „LocalSystem” musi mieć dostęp do wszystkich zasobów lokalnych, więc nie sądzę, aby uprawnienia systemu plików mogły powodować ten problem.
  • Czy są jakieś typowe przyczyny awarii tej usługi
  • Czy są inne dzienniki lub informacje diagnostyczne, na które powinienem zwrócić uwagę
  • Jakie inne kroki mogę podjąć, aby określić przyczynę tego niepowodzenia

Edycja: ten problem można odtworzyć nawet przy użyciu prostej usługi testowania udostępnionej w

ta odpowiedź na przepełnienie stosu
https://stackoverflow.com/a/32440/266449
.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Problem zakończył się w niezarejestrowanych bibliotekach DLL. W szczególności obsługa usługi Python zapewniana przez pywin32 wymaga dostępności pewnych bibliotek DLL do interakcji z interfejsem API Win32. Te biblioteki DLL powinny zostać zainstalowane automatycznie podczas instalacji pywin32 z:
pip install pypiwin32

Jak wspomniano w

ta odpowiedź na przepełnienie stosu
https://stackoverflow.com/a/34942168/266449
poprawną poprawką w tym przypadku było uruchomienie:
python C:\Python27\Scripts\pywin32_postinstall.py install

To rozwiązało mój problem.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się