Запрос службы Windows по сети
Я написал службу Windows на C#, которая собирает информацию о производительности, диске и памяти и записывает ее в EventLog. Он включен как сетевой сервис. Я хотел бы собрать эту информацию из удаленного места. Эта служба будет работать на разных клиентских компьютерах, и я хотел бы получать эту информацию периодически (один раз в день) и сохранять их в таблице базы данных. Я не понимаю, как можно запросить службу Windows по сети. Другими словами, что именно делает сервис "Сетевой сервис"?
Я не хочу, чтобы служба напрямую подключалась к моей базе данных и записывала эту информацию. Но я хотел бы запустить его с удаленного компьютера, получить информацию и затем записать эту информацию в мою таблицу базы данных.
Мне не удалось найти учебник, иллюстрирующий сетевой сервис Windows. Большинство из них были посвящены записи в журналы событий, и я почти застрял там.
Это выполнимо, есть ли какие-либо предложения о том, как это делается?
3 ответа
Если другие предложения по переходу на веб-службы WCF не подходят, вы можете назначить команды Custom в службе Windows, не прибегая к удаленному взаимодействию.
Фактически вы можете отправить целое число от 128 до 256, а затем заставить свою службу выполнять любой код, который вам нужен, когда она получает эту команду, например, отправлять всю информацию в вашу базу данных или веб-службу.
Вы сможете инициировать его со своей стороны, когда и когда вам это нужно, пока служба успешно работает на клиентских компьютерах.
Взгляните на эту статью проекта кода для примера: Создание базовой службы Windows в C#
Взгляните на метод OnCustomCammand.
Вот еще один пример статьи от Microsoft: общение со службами Windows
Используйте WCF, чтобы включить некоторую форму веб-службы RESTful.
См. Wcf-Getting-Start на MSDN и, в частности, Руководство по проектированию и созданию веб-сервисов RESTful с WCF.
AFAIK "Сетевая служба" просто означает, что она работает под учетной записью "Сетевая служба", которая имеет набор разрешений, отличный от учетных записей "Локальная служба" или "Система".
Однако, чтобы предоставить службу другому компьютеру в сети (кроме стандартных функций STOP, START, RESTART, которые вы получаете через оснастку служб - services.msc), вам потребуется создать службу, используя что-то вроде Remoting, Webservices или В идеале в качестве гимла упоминается WCF.