Как я разрабатываю.NET (C#) для программы, которая должна работать как служба Windows, но также и иметь веб-интерфейс?

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

Одна мысль, что я имел, состояла в том, чтобы создать службу Windows, которая делает связь с аппаратными средствами, а также "публикующий" веб-сервисы через WCF и затем имеющий приложение ASP.NET, которое затем управляет службой Windows через WCF. Этот подход, кажется, большая работа для того, что я пытаюсь выполнить.

Кто-то мог дать мне некоторое направление, является ли это хорошим подходом, и даже дайте мне лучший способ сделать это, если Вы существуете?

Спасибо! Joel

7
задан hjoelr 18 March 2010 в 23:59
поделиться

3 ответа

Вы можете инстанцировать конечную точку WCF как службу TCP из службы Windows, как объясняется на MSDN: Как: Host WCF in a Windows Service Using TCP .

Оттуда, это относительно прямо, чтобы потреблять ту конечную точку в приложении ASP.NET (так же, как потребление любой другой конечной точки WCF).

В отсутствие каких-либо убедительных причин сделать иначе, это, вероятно, тот подход, который я бы взял. Ваш единственный другой вариант состоит в том, чтобы использовать некоторую другую форму IPC, такую как сопоставленные с памятью файлы или именованные трубы. WCF намного легче запустить и запустить.

1
ответ дан 7 December 2019 в 20:35
поделиться

Вы можете встроить веб-сервер ASP.Net в службу с помощью API хостинга ASP.Net, а затем использовать его для непосредственного запуска веб-сайта ASP.Net.

Обратите внимание, что сайт ASP.Net будет работать в отдельном домене приложений.

0
ответ дан 7 December 2019 в 20:35
поделиться

Вы можете просто использовать обычный XML-файл (или что-то еще), который служба отслеживает на предмет изменений. Веб-интерфейс мог просто читать / записывать этот XML-файл. Это работает только в том случае, если служба и веб-сайт работают на одном компьютере (вы также можете сделать это через общий ресурс, но это дополнительная конфигурация, и в этом случае вы можете просто использовать WCF).

0
ответ дан 7 December 2019 в 20:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: