2010-12-03 7 views
13

Мне интересно, как именно метод Main() работает в службе Windows, поскольку он относится к диспетчеру управления службами. Когда он выполняется? Как он подключается к ОС? Выполняется ли это при установке службы? Я знаю, что он выполняется, когда OnStart() вызывается SCM, OnStop() он уже запущен, поэтому мы не будем его повторять.C# Windows Service Основной метод

Если кто-то знает много об этой области и может разработать, я был бы признателен.

Я опытный программист, мне не нужно описание того, что делает основной метод в целом ... как это работает в сочетании с услугами Windows.

+0

Вы должны знать, что основной метод является «основным» только для компилятора, поэтому это не имеет никакого отношения к запуску служб Windows. –

ответ

13

Когда вы используете апплет панели управления, чтобы сообщить службе, чтобы запустить SCM, запуск процесса; это приводит к запуску кода внутри Main(). Строка ServiceBase.Run() в методе Main() перехватывает связанные службы в SCM, который затем вызывает метод OnStart() для каждой из служб, указанных в вызове метода ServiceBase.Run().

+1

Что произойдет, если Main() выбрасывает исключение? Апплет панели управления информирует пользователя о том, что что-то пошло не так? – PaulK