2010-12-03 4 views
13

Ciekawe, jak dokładnie metoda Main() działa w usłudze Windows, ponieważ odnosi się do Service Control Manager. Kiedy jest wykonywany? Jak łączy się z systemem operacyjnym? Czy jest on wykonywany po zainstalowaniu usługi? Wiem, że jest on wykonywany, gdy OnStart() jest wywoływany przez SCM, OnStop(), który już działa, więc nie uruchomilibyśmy go ponownie.C# Usługa główna systemu Windows

Jeśli ktoś wie dużo o tym obszarze i może go rozwinąć, byłbym wdzięczny.

Jestem programistą wymagającym sprawdzenia, nie potrzebuję opisu tego, co ogólnie robi Główna Metoda ... tylko jak działa w połączeniu z usługami Windows.

+0

Powinieneś wiedzieć, że główna metoda jest "główna" tylko dla kompilatora, więc nie ma to nic wspólnego z uruchamianiem usług Windows. –

Odpowiedz

13

Podczas korzystania z apletu Panelu sterowania, aby poinformować usługę o uruchomieniu SCM uruchamia proces; powoduje to uruchomienie kodu wewnątrz Main(). Linia ServiceBase.Run() w metodzie Main() przechwytuje powiązane usługi do SCM, który następnie wywołuje metodę OnStart() dla każdej z usług określonych w wywołaniu metody ServiceBase.Run().

+1

Co się stanie, jeśli Main() zgłasza wyjątek? Czy aplet panelu sterowania informuje użytkownika, że ​​coś poszło nie tak? – PaulK