C # служба наблюдения за динамической файловой системой - PullRequest
3 голосов
/ 11 января 2012

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

Я написал панель управления на C #, которая сохраняет данные конфигурации в файл XML. Исходя из этого, я хочу иметь возможность настроить количество запущенных служб и их параметры. Я хочу иметь возможность динамически добавлять и удалять экземпляры службы по мере необходимости.

Мои вопросы: 1) это вообще возможно? 2) Можно ли запустить службу с определенными свойствами с панели управления? (Может быть, используя «NET START» с параметрами командной строки?

[Изменить] Я только что увидел что-то онлайн в отношении класса ServiceController; это можно использовать для добавления и удаления экземпляров службы, а также для запуска / остановки служб? [/ Edit]

Спасибо за любую помощь

1 Ответ

3 голосов
/ 11 января 2012

Редактировать: Мой первоначальный ответ был фактически неверным.

Вы можете использовать параметры командной строки, либо с NET START (который, однако, будет принимать только параметры, начинающиеся сс обратной косой чертой) или с SC START (который будет принимать что-либо в качестве параметра).Вы не можете запустить сервис с динамически выбранными параметрами командной строки.Параметры также могут быть указаны во время регистрации службы, и в этом случае они остаются постоянными после этого.

Однако запуск нескольких экземпляров службы звучит как неправильная идея.Ничто не мешает вам создать просто один экземпляр службы, который вы настраиваете во время выполнения, взаимодействуя с ним (например, с помощью ServiceController.ExecuteCommand), что вам и нужно сделать, IMHO.

Чтобы установить связь со службой, см., Например, Как установить связь со службой Windows из приложения, которое взаимодействует с рабочим столом? и Как создавать и взаимодействовать с Windows C ++Служба в Visual Studio 2010?

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