Управление сервисом через отдельное приложение - PullRequest
2 голосов
/ 24 августа 2010

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

Какой самый простой способ заставить приложение взаимодействовать с отдельной службой?Буду ли я использовать COM, WCF, очередь сообщений или что-то еще полностью?Я знаю, что, вероятно, есть несколько способов сделать это, поэтому я хотел бы услышать некоторые плюсы и минусы, если это возможно.

Редактировать: Служба и приложение будут работать ната же машина.

Ответы [ 3 ]

1 голос
/ 24 августа 2010

Использовать WCF с NetNamedPipeBinding (разрешает только IPC на одном компьютере) или .NET Remoting. Если вы хотите сделать это быстро, выберите технологию, с которой вы более знакомы. Если вы не знакомы ни с одной из этих технологий, выберите WCF, потому что он более новый, и вы, скорее всего, будете использовать его снова в будущем - так что опыт работы с ним будет полезным.

1 голос
/ 24 августа 2010

В идеале вы должны создать отдельное приложение и использовать WCF для связи между вашим сервисом и этим приложением.

Но есть более дешевый способ - реализовать собственный простой веб-сервер с использованием HttpListener.См. http://msdn.microsoft.com/en-us/magazine/cc163879.aspx

Это позволяет легко принимать несколько простых команд и отправлять их с помощью любого веб-браузера.

Для просмотра журналов, почему бы просто не привязать файлы журналов (используя, например, baretail)?

0 голосов
/ 24 августа 2010

Пропустите WCF и просто используйте .NET Remoting.Так намного проще.Бог знает, почему они называют это устаревшим.

Редактировать: Если он работает на одном и том же ПК, транспорт будет именоваться Pipes, IIRC WCF также поддерживает это.

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