Хостинг WF в качестве службы Windows - PullRequest
0 голосов
/ 05 октября 2011

Я пытаюсь создать простой рабочий процесс Windows, чтобы отслеживать каталог для входящих файлов и делать некоторые обновления БД с помощью Windows WF 4.0.В настоящее время я планирую создать службу WCF Workflow и разместить ее в качестве службы Windows, работающей 24/7 (с ежедневным отключением и запуском службы).

В дальнейшем я планирую использовать этот сервис с помощью приложения ASP.NET/WPF для создания базового вида панели инструментов.

Учитывая идею опроса каталогов для файлов с WF, размещенных в службе Windows, кажется ли это хорошей идеей?Какие могут быть минусы этого?

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

1 Ответ

0 голосов
/ 05 октября 2011

Я на самом деле делаю это, но это немного сложнее, чем вы думаете, и по возможности его следует избегать.

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

Как я это сделал, я создал расширение рабочего процесса, в котором размещался FileSystemWatcher. Как только действие было готово к просмотру файла, оно создало закладку и передало ее расширению.

Затем расширение запустило FSW, удерживая закладку.

Когда произошло событие FSW, расширение возобновило закладку, передав объект, содержащий подробности о событии. Мероприятие сделало то, что было необходимо с событием, а затем перепланировало себя.

Обычно я бы этого не делал, но у меня были некоторые требования, которые заставляли меня использовать WF4 для достижения этой цели. Если бы мне не нужно было использовать WF4, я бы просто развернул FSW внутри службы и использовал события.

Если только вы не предполагаете, что вам придется проявлять большую гибкость в конфигурации, подробно описывая то, что вы делаете с событием FSW, и ожидаете, что это будет меняться относительно часто во время развертывания службы, я бы пропустил WF4.

...