WCF, FileSystemWatcher и архитектура - PullRequest
0 голосов
/ 14 марта 2012

Я новичок в WCF и нуждаюсь в некоторой помощи с архитектурой для следующего решения:

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

Затем другая служба WCF должна «подписаться» наэто событие и выполнить некоторую обработку.

Основная идея состоит в том, что существует один сервис для мониторинга заранее определенного набора каталогов, в то время как соответствующая служба получает уведомление о наличии файлов для обработки.

Итак, мои вопросы: - 1. Что касается службы FileSystemWatcher WCF, я хочу разместить ее в AppFabric, но не уверен, как именно это будет работать.IE Когда эта служба развернута на сервере, я хочу, чтобы соответствующий объект FileSystemWatcher вызывался и оставался включенным и отслеживал папки в течение неопределенного времени.Может ли WCF сделать это таким образом или это лучший кандидат для службы Windows 2. Может ли одна служба WCF публиковать события, а другая служба WCF подписываться на эти события и как?Все службы WCF, размещенные внутри AppFabric?

1 Ответ

1 голос
/ 15 марта 2012
  1. WCF - это коммуникационная среда, которую можно использовать для предоставления или использования служб SOAP / REST. Служба Windows является одним из способов размещения таких приложений. WAS / IIS и самостоятельное размещение - это другие методы. Служба Windows обеспечивает больший контроль над запуском / отключением службы, что, по-видимому, относится к вашему сценарию. Windows Server AppFabric улучшает некоторые возможности управления жизненным циклом приложений, размещенных в WAS / IIS, но по-прежнему принципиально отличается от размещения в Windows Service.

  2. Насколько я знаю, WCF не имеет встроенной возможности публикации событий (я предполагаю, что вы имеете в виду шаблон публикации / подписки). Однако вы можете реализовать такой шаблон, используя дуплексные каналы WCF. Нет никаких ограничений на приложение, одновременно действующее как «сервер» и «клиент».

...