【发布时间】:2011-03-06 19:07:17
【问题描述】:
我有一个 Web 应用程序,我正在使用 Windows Workflow Foundation 添加工作流功能。我的解决方案基于 K. Scott Allen 在 OdeToCode 上的 Orders Workflow 示例。一开始我没有意识到警告的重要性“如果您使用延迟活动并为手动调度服务配置活动计时器,这些事件将发生在与 HTTP 请求无关的后台线程上”。我现在需要使用延迟活动,但它不能像他的解决方案架构那样工作。有没有人遇到过这个问题并找到了一个好的解决方案?这个例子与很多地方都有联系,但我没有看到其他人遇到过这个问题,这对我来说似乎有点碍事。
编辑:问题是工作流的结果通过 HttpContext 返回到 Web 应用程序。我将 ManualWorkflowSchedulerService 与 useActiveTimers 一起使用,这适用于大多数情况,因为工作流事件是从 Web 应用程序触发的,并且当返回工作流结果并且 Web 应用程序可以继续处理时,HttpContext 仍然存在。当使用延迟活动时,处理发生在后台线程上,并且当它尝试将结果返回到 Web 应用程序时,没有有效的 HttpContext(因为没有 Http 请求),因此进一步处理失败。也就是说,webapp 正在尝试处理工作流结果,但没有 http 请求。
我认为我需要在工作流中进行所有延迟后的活动处理,而不是交给网络应用。
干杯。
【问题讨论】:
-
您遇到的具体问题是什么?
标签: workflow workflow-foundation