Как служба Windows должна возвращать информацию из пользовательской команды - PullRequest
3 голосов
/ 22 июня 2009

У меня есть служба Windows, работающая как часть моего приложения.

Если я хочу связаться с ним через дескриптор службы, я могу выдавать пользовательские команды (например, «начать работу»). В конечном итоге это будет вызов функции Win32 ControlService () . Каков наилучший способ вернуть блок данных из такой команды?

В частности, я хочу вернуть «URL по умолчанию» (то есть строку), на которую моя служба будет отвечать через другие протоколы, такие как http.

Было бы предпочтительным решение, которое легко внедрить в службу C # (.net 2.0).

Ответы [ 2 ]

2 голосов
/ 22 июня 2009

Если вы хотите остаться с .net 2.0, используйте удаленное взаимодействие. Позвольте окнам обрабатывать вызовы ControlService (для запуска / остановки / приостановки вашего сервиса). Если вы хотите, чтобы ваше приложение подключилось, установите удаленное подключение к вашей службе. Прекрасно работает.

Альтернатива: Если вы можете перейти на .net 3.5, вы можете использовать WCF вместо удаленного взаимодействия.

Вы можете использовать низкоуровневую связь (каналы и сокеты), но на самом деле удаленное взаимодействие должно быть проще и работать очень хорошо - и оно поддерживается в .net 2.0.

0 голосов
/ 22 июня 2009

Вы смотрели в WCF? Вам нужно перейти на .NET 3.0 или выше, но вы можете легко настроить свои службы для работы по TCP / IP или HTTP и т. Д.

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