2011-06-22 10 views
12

Właśnie zainstalowałem usługę windows przy użyciu VS 2010, używając installutil.exe, okno wiersza polecenia cmd powiedziało, że faza zatwierdzenia została zakończona pomyślnie, ale nie widzę usługi Windows w folderze lokalnych usług .Nie mogę znaleźć usługi Windows (właśnie zainstalowałem)

Za czym tęskniłem?

używam Windows 7 i VS 2010

UPDATE:
zainstalowałem un zainstalowane usługi (który został nazwany Service1) zmienił nazwę na coś, co miało sens, usługa (sam proces, jak powyżej), nadal nie można go znaleźć w przeglądarce usług.

FWIW ... Zmieniłem nazwę mojego service1.cs w oknie właściwości (nazwa pliku) .. ale wciąż wyświetlał service1 w przeglądarce usług. Skończyło się na zmianie wartości w kodzie za (kod generowany automatycznie) this.serviceInstaller1.ServiceName = "service1";

Update (2) I stworzył atrapę usługa systemu Windows, i był w stanie pomyślnie zainstalować, że (to skłoniło mnie do Domain Login ID & hasło) i udało mi się go zobaczyć w przeglądarce usług.

Jednak nie jestem w stanie zobaczyć faktycznej usługi Windows (związanej z moim projektem) w przeglądarce usług. Oczywiście mam uprawnienia, ponieważ udało mi się zainstalować fikcyjną usługę.

Według tego ta strona Can't see windows service after installation

nie widzę usługę w rejestrze "HKLM \ System \ CurrentControlSet \ Services" ścieżki.

Update (3)
Plik dziennika mówi

Brak instalatorzy publiczne z RunInstallerAttribute.Yes atrybut można znaleźć w katalogu C: ..

jednak Mam plik ProjectInstaller.cs w roztworze projektu.

dodałem

[RunInstaller (true)]

do pliku ProjectInstaller.cs, wciąż nie ma szczęścia

Wszelkie suggesstions?

+0

Czy odświeżyłeś widok folderu usług? Czasami nie pojawia się natychmiast. –

+0

Tak, mam ... nie ma szczęścia – user788487

+0

@ user788487: Do czego ustawiono właściwość ServiceName usługi ServiceInstaller? To właśnie powinno być wymienione poniżej. –

Odpowiedz

2

Utwórz klasę, w której dodano [RunInstaller (true)] public.

+0

To jest publiczne ... – user788487

+0

Myślę, że istnieje dość ograniczony zestaw powodów dla "Brak publicznych instalatorów z RunInstallerAttribute". Czy usunąłeś instalator i ponownie przeszedłeś ten proces? Wygląda na to, że za pierwszym razem coś przeoczyłeś. –

4

Sprawdź, czy masz coś takiego w konstruktorze instalatora derivated klasy z [RunInstaller (true)] atrybut:

public ServiceSetup() 
{ 
    Installers.Clear(); 

    ServiceInstaller serviceInstaller = new ServiceInstaller(); 
    // serviceInstaller.Description = // FIXME: 
    // serviceInstaller.ServiceName = // FIXME: 
    // serviceInstaller.DisplayName = // FIXME: 
    serviceInstaller.StartType = ServiceStartMode.Automatic; 
    Installers.Add(serviceInstaller); 

    ServiceProcessInstaller serviceProcessInstaller = new ServiceProcessInstaller(); 
    serviceProcessInstaller.Account = ServiceAccount.LocalSystem; 
    serviceProcessInstaller.Username = null; 
    serviceProcessInstaller.Password = null; 
    Installers.Add(serviceProcessInstaller); 
} 
+0

Idealny! Rozwiązałem moje problemy, nie widząc usługi na liście usług :) – nover

1

Właśnie natknąłem tej kwestii dokładnie tak, jak ją opisać go.

Byłem głupio uruchomiony installutil przeciwko wygenerowany plik myservice.vshost.exe.

To prawdopodobnie nie był twój problem, ale w wierszu poleceń przeglądałem katalog, w którym znajduje się .exe, wpisałem installutil, po którym następuje spacja, a następnie przełączono za pomocą karty, aby automatycznie uzupełnić nazwę usługi exe.

Plik, który znalazłem, zaczął się od "myservice" i zakończył się na ".exe", a ja go uruchomiłem.

Głupia, ale tak się stało.

Pozostawiając tę ​​wiadomość dla potomnych, z nadzieją, że może pomóc komuś :-)

0

To jest pół-rozwiązanie w najlepszym wypadku.

Miałem ten sam problem i wypróbowałem wszystkie wymienione powyżej środki zaradcze oraz w innych rajach programistów.

Zmieniłem typ Acount na LocalService i teraz działa poprawnie. To może być rozwiązanie tymczasowe.

8

Pamiętaj również, aby sprawdzić nazwę, którą podałeś, zanim ją poszukać na liście. Kopiować, wklejać kodu z sieci i zapomniał zmienić nazwę usługi w kodzie więc oczywiście nie mogę go znaleźć ...

serviceInstaller.DisplayName = "Example service" 

Doh!

0

Uruchomiłem plik installutil.exe w odniesieniu do pliku, który uważam, że nie ma rozszerzenia .exe. Kiedy przeglądam pliki w fileexplorer, rozszerzenia nie są widoczne. Kiedy dodałem rozszerzenie .exe do nazwy pliku usługi, działało gładko :-). Co za porażka.

+0

Witamy w Stackoverflow. Przeczytaj często zadawane pytania przed odpowiedzią. Przeczytaj dokładnie tę wiadomość zanim odpowiesz .. – coder

0

Aby dodać niestandardową akcję do projektu instalacji

1.In Solution Explorer kliknij prawym przyciskiem myszy projekt konfiguracji, wskaż polecenie Widok, a następnie wybierz niestandardowych działań. Pojawi się edytor Custom Actions.

2.W edytorze Custom Actions, kliknij prawym przyciskiem myszy węzeł Custom Actions i wybierz Add Custom Action. Pojawi się okno dialogowe Wybierz element w projekcie.

3.Kliknij dwukrotnie folder aplikacji w polu listy, aby go otworzyć, wybierz podstawowe wyjście z MyNewService (Aktywne) i kliknij OK. Główne dane wyjściowe są dodawane do wszystkich czterech węzłów działań niestandardowych Zainstaluj, zatwierdz, wycofaj i odinstaluj.

4. Utwórz projekt konfiguracji.

0

Brzmi dziwnie, ale upewnij się, że plik service.exe , który próbujesz zainstalować, jest najnowszą wersją. Obawiam się, że próbujesz rozmieścić pliki w folderze debugowania, ale wprowadziłeś zmianę i przebudował projekt usługi w trybie zwolnienia.

Powiązane problemy