У меня есть рабочий процесс, который я создал и развернул в ферме Sharepoint 2007. Когда он работает против пункта 2, я немедленно создал огонь.
Я настроил обратный вызов для события InitializeTimeoutDuration. Через журналы и отладочный вывод я вижу, что он устанавливает задержку в один час. Однако при следующем цикле заданий таймера SP (менее 5 минут) события, вызывающие задержку, срабатывают.
Я здесь потерян. Любая помощь с благодарностью.
Обновление
Через некоторое копание я смог определить, почему это происходит. После запуска рабочего процесса запись добавляется в таблицу ScheduledWorkItems в базе данных контента SP. Тем не менее, «DeliveryDate» в записи устанавливается на текущее время, а «Created» - на час раньше. Тем не менее, задержка, которую я использую, составляет 2 часа, поэтому ни один из этих моментов не имеет для меня никакого смысла. Попробую жестко запрограммировать его ...
Обновление 2
Даже с жестко заданной продолжительностью время не работает. Я жестко запрограммировал 2-часовую задержку, и «Дата доставки» теперь составляет один час в будущем, а дата «Создано» - один час в прошлом. Так что, по крайней мере, разница между ними хорошая.
Обновление
Ну, это смущает ... нашел проблему. Я публикую это здесь для других, которые могут совершать ошибки, как я. Во-первых, я не был прав в моем UTC-> локальном преобразовании. Время в базе данных было правильным. Что было не правильно, так это то, как я устанавливал TimeoutDuration:
// WRONG!
delayActivity.TimeoutDuration = new TimeSpan("1:00:00"); // one hour
что я должен был делать:
// RIGHT!
((DelayActivity)sender).TimeoutDuration = new TimeSpan("1:00:00"); // one hour
как только я сделал это изменение, все остальное кажется нормальным.