2013-08-28 21 views
33

Kiedy próbuję zainstalować usługę Windows:usługi Windows Instalacja kończy się Wycofanie zmian

c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil

mam, co wydaje się być, niektóre komunikaty o sukcesach i niektóre komunikaty o błędach. Część dół:

An exception occurred during the Install phase. 
System.ComponentModel.Win32Exception: The specified service has been marked for deletion 

Na koniec:

The Rollback phase completed successfully. 

The transacted install has completed. 
The installation failed, and the rollback has been performed. 

Usługa jest dany wpis w aplecie Usługi, ale to jest oznaczone jako „Wyłączony”. Kiedy próbuję zmienić go na inny stan, pojawia się komunikat o błędzie "oznaczony do usunięcia".

Brak komunikatów w dzienniku zdarzeń. Nie ma nic użytecznego w pliku dziennika utworzonym przez installutil.exe (wydaje mi się, że jest on zapisany w bieżącym katalogu roboczym).

Nie mam żadnego kierunku, aby to osiągnąć. Co ja robię?

+0

możliwe duplikat [Jak zmusić deinstalacji usługi Windows] (http://stackoverflow.com/questions/225275/how-to-force-uninstallation-of-windows-service) – participant

Odpowiedz

77

Okazuje się, że instalacja może, a prawdopodobnie zakończy się niepowodzeniem, jeśli ta usługa zostanie podświetlona w aplecie Usługi. Najbezpieczniej jest po prostu zamknąć aplet Usługi, zainstalować usługę, a następnie ponownie otworzyć aplet Usługi. To naprawdę głupie.

Należy również uruchomić konsolę jako admin.

+0

Ten przeklęty aplet jest naprawdę denerwujący, jak zawsze przeszkadza. – ProfK

+2

Zapisał mi taki ból głowy czytając ten komentarz! Dzięki! –

+0

W moim przypadku aplet nie miał podświetlonej usługi i nie był nawet skupiony na karcie Usługi - był w Podglądzie zdarzeń. Witaj w cudownym świecie wprowadzających w błąd i mylących wiadomości o błędach Microsoftu, jak sądzę? – ajeh

7

Doświadczyłem tego samego i problem był dla mnie, że usługa o tej samej nazwie została już zainstalowana. Aby zainstalować nową usługę, musiałem odinstalować starsze usługi. Uczę się, jak tworzyć i konfigurować usługi systemu Windows, a tym samym sprzeczać się z nazewnictwem. Próbowałem odinstalować usługę najpierw przez:

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil -u servicename.exe 

Po to stwierdzenie realizuje z powodzeniem zainstalować usługę i powinno się udać bez jakichkolwiek cofanie.

+0

Jeśli dobrze pamiętam, to już odinstalowałem tę usługę, ale pozostało wyróżnione w aplecie Usługi. –

+0

@DustinOprea, jeśli usługa została pomyślnie odinstalowana, nie powinna pojawiać się na liście usług wyświetlanych w oknie "services.msc". – Sarah

+0

W tym oknie jest dostępna czynność "odświeżania", nie bez powodu. Jednak nie było to takie proste. Jak już wspomniałem, minęło już tyle czasu, że nie mogę już zapewnić mu żadnych dodatkowych wglądów. –

0

Dodanie kilku dodatkowych czeków i punktów w celu rozwiązania powyższego problemu.

  1. serwis zbudowany w trybie uwalniania i wziąć zwolnić pliki folderów i przechowywane w innej ścieżce
  2. kopię, która ścieżkę i przejdź do wizualnego studio okna wiersza poleceń i uruchom ten miech polecenie przykładowe Aby zainstalować usługę.
  3. Proszę zamknąć okno services.msc, jeśli jest otwarte, a następnie uruchomić C: Program Files (x86) \ Microsoft Visual Studio 11.0> InstallUtil.exe C: \ RunLocationServices \ TestService.exe
  4. Przejdź do services.msc i wybierz tę usługę i kliknij na start, jeśli zmieni się na "uruchomiony", oznacza to, że twoja usługa działa poprawnie.

Jeszcze jeśli problem występuje wtedy Innym Checkpoint & ROZWIĄZANIE Po uruchomieniu usługa, usługa komunikuje Service Control Manager, jak długo usługa musi zacząć (okres czasu dla serwisu) . Jeśli Menedżer sterowania usługami nie otrzyma powiadomienia "usługa uruchomiona" od usługi w tym czasie, , Menedżer sterowania usługami zakończy proces obsługujący tę usługę. Ten limit czasu jest zwykle krótszy niż 30 sekund. Jeśli nie dostosujesz tego okresu, Menedżer kontroli serwisowej zakończy proces. Aby skorygować ten okres oczekiwania, wykonaj następujące czynności: 1. Wejdź w Start> Uruchom> i wpisz regedit 2. Przejdź do: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control Po zaznaczeniu folderu kontrolnego kliknij prawym przyciskiem myszy w okienku po prawej stronie i wybrać nową wartość DWORD 3.Name nowy DWORD: ServicesPipeTimeout 4.Right kliknij ServicesPipeTimeout, a następnie kliknij polecenie Modyfikuj kliknij opcję Dziesiętny, wpisz „180000”, a następnie kliknij przycisk OK 5.Restart komputer

Nadal, jeśli problem występuje, to problem w kodzie serwisowym, może wystąpić nieskończona pętla z powodu twoich metod/klas wywoływania usługi. Dokonaj przeglądu kodu każdej linii.

1

Czasami dzieje się tak z powodu problemów z uprawnieniami. Uruchom "Wiersz poleceń programisty dla VS 2012" jako administrator. To zadziała.

+0

To nie miało znaczenia. Coś zrywającego po prostu dlatego, że coś jest podświetlone, to błąd aplikacji, a nie problem uprawnień. –

0

Ten problem jest ze względu na bezpieczeństwo, lepiej otworzyć wiersz polecenia programisty dla VS 2012:

Uruchom jako administrator

i zainstalować usługę. Na pewno rozwiąże problem.

Próbowałem, a problem został rozwiązany.

0

kliknij prawym przyciskiem myszy Wiersz polecenia i wybrać Uruchom jako administrator
skopiuj i wklej w: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe C:\TestService\bin\Debug\TestService.exe

spowodować TestService.InstallLog jest:

Installing service TestService... 
Service TestService has been successfully installed. 
Powiązane problemy