Задержка WF4 / возобновление в WorkflowServiceApplication на IIS5 и 6 - PullRequest
0 голосов
/ 28 апреля 2011

Мой рабочий процесс размещен в приложении WorkflowServiceApplication, работающем на IIS5 (производственная среда будет IIS6) с постоянной базой данных. Это служба запроса / утверждения, поэтому существует задержка (несколько дней), пока она ожидает подтверждения, и если эта задержка проходит без подтверждения, рабочий процесс отправляет утверждающему электронное письмо. Я заметил, что ожидающие рабочие процессы только «просыпаются» и отправляют свои электронные письма, если я запускаю новый запрос (т.е. новый экземпляр рабочего процесса). Я предполагаю, что при запуске нового потока что-то проверяет хранилище экземпляров на наличие экземпляров, которые должны быть возобновлены, и возобновляет их. Я только что заметил проблему, потому что раньше я тестировал с задержками, которые составляли всего несколько минут, а не дней. Я еще не пробовал это на IIS6, но я ожидаю, что это будет то же самое.

q1) мне нужно написать консольное приложение или что-то для периодической проверки и возобновления потоков, и если да, то может ли кто-нибудь посоветовать, как это сделать? Или я только что сделал что-то не так?

q2) Предполагая, что ответом на вопрос Q1 является «да, вам нужно что-то написать», если бы я использовал IIS7 и AppFabric (что может быть возможно), сон / возобновление просто работали бы без необходимости писать какой-либо код проверить и возобновить потоки? т.е. просто развернуть службу рабочего процесса в AppFabric, и она работает?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 29 апреля 2011

Да Служба управления рабочими процессами Windows Server AppFabric будет запускать рабочие процессы с ожидающими таймерами.Вы получаете это бесплатно, а также другие вкусности.

0 голосов
/ 28 апреля 2011

Ответ на вопрос 1 - да.После перезапуска домена приложения IIS он не перезапускается до тех пор, пока к нему не поступит внешний запрос.В результате WorkflowServiceHost не активен, и действия задержки с истекшим сроком действия не будут возобновлены.В версиях IIS до 7 необходимо создать внешний запрос, чтобы убедиться, что WorkflowServiceHost доступен.Самый простой способ сделать это - просто периодически запускать службу Windows для получения страницы WSDL.

Если вы обновляете IIS7 и AppFabric, вы можете настроить автоматический запуск службы, как только IIS будет работать, и об этом позаботятся.той же проблемы.Я бы предпочел эту опцию, поскольку AppFabric дает вам множество дополнительных преимуществ, таких как отслеживание.

...