C #, Службы Windows: ServiceBase.Run с несколькими службами одного типа - PullRequest
5 голосов
/ 02 апреля 2010

Я пытаюсь запустить несколько похожих сервисов через ServiceBase.Run(ServiceBase[] ), но работает только первый. MSDN явно не отрицает это;этот отрывок означает, что все они должны быть разных типов?(я выделен жирным шрифтом, а не MSDN)

Вызовите эту перегрузку в функции main () исполняемого файла службы, чтобы загрузить массив связанных служб .

1 Ответ

7 голосов
/ 02 апреля 2010

Это и есть намерение. Идея заключается в том, что вы можете иметь один исполняемый файл, создающий «несколько сервисов», а не только один тип сервиса.

Когда служба зарегистрирована в SCM, ожидается, что каждая служба уникальна. Это предполагает (и я считаю, что это так), что каждый элемент в вашем массиве должен быть уникальной реализацией ServiceBase .

Если вы действительно пытаетесь получить несколько копий одного и того же сервиса, я бы переосмыслил ваш дизайн. Просто заставьте службу запускать несколько потоков одним и тем же методом, и это обеспечит тот же эффект с одним экземпляром службы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...