Запрос службы Windows по сети - PullRequest
2 голосов
/ 14 мая 2009

Я написал службу Windows на C #, которая собирает информацию о производительности, диске и памяти и записывает ее в EventLog. Он включен как сетевой сервис. Я хотел бы собрать эту информацию из удаленного места. Эта служба будет работать на разных клиентских компьютерах, и я хотел бы периодически получать эту информацию (один раз в день) и сохранять ее в таблице базы данных. Я не понимаю, как можно запросить службу Windows по сети. Другими словами, что именно делает службу «Сетевой сервис»?

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

Мне не удалось найти учебник, иллюстрирующий сетевую службу Windows. Большинство из них были посвящены записи в журналы событий, и я почти застрял там.

Это выполнимо, есть ли какие-либо предложения о том, как это делается?

Ответы [ 3 ]

2 голосов
/ 14 мая 2009

Если другие предложения по переходу на веб-службы WCF недоступны, вы можете назначить специальные команды в службе Windows без необходимости использовать удаленное взаимодействие.

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

Вы сможете инициировать его со своей стороны, когда и когда вам это нужно, в то время как служба успешно работает на клиентских машинах.

Взгляните на эту статью проекта кода для примера: Создание базовой службы Windows в C #

Взгляните на метод OnCustomCammand .

Вот еще один пример статьи от Microsoft: Связь со службами Windows

1 голос
/ 14 мая 2009

AFAIK «Сетевая служба» просто означает, что она работает под учетной записью «Сетевая служба», которая имеет набор разрешений, отличный от учетных записей «Локальная служба» или «Система».

Однако для предоставления службы другому компьютеру в сети (кроме стандартных функций STOP, START, RESTART, которые вы получаете через оснастку служб - services.msc ), вам потребуется создать ваш сервис, использующий что-то вроде удаленного взаимодействия, веб-сервисов или в идеале, как упомянул гимел WCF .

1 голос
/ 14 мая 2009

Используйте WCF , чтобы включить некоторую форму RESTful Веб-службы .

См. wcf-Getting-Start в MSDN и, в частности, Руководство по проектированию и созданию веб-служб RESTful с WCF .

...