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

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

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

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

Спасибо! Joel

Ответы [ 3 ]

1 голос
/ 19 марта 2010

Вы можете создать конечную точку WCF в качестве службы TCP из службы Windows, как описано в MSDN: Как: разместить WCF в службе Windows с помощью TCP .

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

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

0 голосов
/ 19 марта 2010

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

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

0 голосов
/ 19 марта 2010

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

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