Я использую WorkFlowServiceHost (в .net 3.5) для размещения State Machine Workflow. Я использую действия приема WCF для обработки вызовов в рабочий процесс. Я использую политику авторизации WCF, чтобы прикладывать претензии к входящим запросам на основе информации в заголовках сообщений. Таким образом, в дальнейшем по цепочке я могу использовать ServiceSecurityContext или просто Thread.CurrentPrincipal, чтобы получить информацию авторизации о запросе (роли, пользователя и т. Д.).Workflow Foundation Threading и WCF OperationContext
Я знаю, что это не сработает для нас, потому что рабочий процесс отправляет разные потоки, чтобы обрабатывать события, которые запускает механизм выполнения, когда есть работа (т. Е. Принимаемая активность). Контекстная информация о запросе (OperationContext) больше не доступна в рабочем процессе (за исключением случайного, когда работа выполняется в потоке выполнения).
Что я хотел бы сделать, это получить информацию о запросе (OperationContext) до создания рабочего потока, получить рабочий поток и приложить к нему контекстуальную информацию, чтобы он был доступен в экземпляре рабочего процесса.
Я думаю, должно быть какое-то событие во время выполнения, которое я могу обработать, но я ничего не придумываю. И я действительно не хочу использовать планировщик ручного рабочего процесса. Любая помощь приветствуется.
Спасибо!
Ничего себе, кто-то ответил! ;-). Спасибо за ссылку, мы закончили перенос рабочего процесса на наше собственное решение, которое было раздражающим, но в итоге это был правильный выбор (лучшая производительность, больший контроль, меньше накладных расходов). Но, по внешнему виду, они обеспечили лучшие перехватчики в WF4.0 – Dan