2012-05-04 12 views
5

próbuję zainstalować Windows Service zrobiłem za pomocą następującego polecenia:Próbując zainstalować Windows Application Service utworzony z C#

C: \ $ (MyFiles) \ Projects \ Win Usługa \ C# \ kontrolera plików \ kontrolera plików \ ​​bin \ Debug> InstallU til.exe filechecker.exe

ale ja dostaję następujący komunikat:

Prowadzenie wolumeny transakcji instalację.

Rozpoczęcie fazy instalacji instalacji. Zobacz zawartość pliku dziennika dla postępu zestawu C: \ $ (MyFiles) \ Projects \ Win Service \ C# \ filechecker \ filechecker \ bin \ Debug \ filechecker.exe. Plik znajduje się w C: \ $ (MyFiles) \ Projects \ Win Service \ C# \ filechecker \ filechecker \ bin \ Debug \ filechecker.InstallLog.

Wystąpił wyjątek podczas fazy instalacji. System.ArgumentException: Należy podać wartość dla źródła.

Rozpoczyna się faza wycofywania instalacji. Zobacz zawartość pliku dziennika dla postępu zestawu C: \ $ (MyFiles) \ Projects \ Win Service \ C# \ filechecker \ filechecker \ bin \ Debug \ filechecker.exe. Plik znajduje się w C: \ $ (MyFiles) \ Projects \ Win Service \ C# \ filechecker \ filechecker \ bin \ Debug \ filechecker.InstallLog.

Faza wycofania zakończyła się pomyślnie.

Zakończono instalację transakcyjną.

Uruchamianie instalacji transakcyjnej.

Rozpoczęcie fazy instalacji instalacji. Zobacz zawartość pliku dziennika dla postępu zestawu C: \ $ (MyFiles) \ Projects \ Win Service \ C# \ filechecker \ filechecker \ bin \ Debug \ filechecker.exe. Plik znajduje się w C: \ $ (MyFiles) \ Projects \ Win Service \ C# \ filechecker \ filechecker \ bin \ Debug \ filechecker.InstallLog.

Wystąpił wyjątek podczas fazy instalacji. System.ArgumentException: Należy podać wartość dla źródła.

Rozpoczyna się faza wycofywania instalacji. Zobacz zawartość pliku dziennika dla postępu zestawu C: \ $ (MyFiles) \ Projects \ Win Service \ C# \ filechecker \ filechecker \ bin \ Debug \ filechecker.exe. Plik znajduje się w C: \ $ (MyFiles) \ Projects \ Win Service \ C# \ filechecker \ filechecker \ bin \ Debug \ filechecker.InstallLog.

Faza wycofania zakończyła się pomyślnie.

Zakończono instalację transakcyjną.

Jak mogę rozwiązać ten problem?

+0

co mówi plik dziennika? – Matt

+0

to jest plik dziennika faktycznie – themis

+3

Miałem problemy wiele razy w przeszłości i okazało się, że powodem jest większość czasu, aby zrobić z błędami/wyjątki itp. W kodzie. Zdecydowanie najprostszym sposobem rozwiązania tego problemu jest utworzenie kolejnego projektu z tym samym kodem, który masz w swojej usłudze Windows i uczynienie tego projektu aplikacją konsolową lub czymś w tym rodzaju. Następnie uruchom ten kod, a od razu zobaczysz, gdzie jest błąd. Zaufaj mi, że zaoszczędzi ci wielu godzin bólu. –

Odpowiedz

9

ServiceInstaller zawsze tworzy źródło dziennika zdarzeń i ustawia nazwę Source do ServiceName.Błąd sugeruje mi, że nie ustawiasz ServiceName na swoim instancji ServiceInstaller (chociaż miałbym nadzieję na lepszy błąd).


chyba że ręcznie iteracyjne swoją kolekcję instalatorów i usunąć go, po jego wystąpienia. Musisz również wyłączyć automatyczne rejestrowanie i/lub samodzielnie dodać własną EventLogInstaller przy użyciu tej samej nazwy źródła - może to być przydatne, jeśli chcesz, aby wszystkie rejestracje z usługi (w tym automatyczne rejestrowanie) prowadziły do gdzieś inny niż dziennik zdarzeń aplikacji.

Powiązane problemy