我有一个Web应用程序,我将工作流功能添加到使用Windows Workflow Foundation。我的解决方案基于K. Scott Allen在OdeToCode上的Orders Workflow示例。在开始时,我没有意识到警告的重要性,“如果您使用Delay活动并为手动调度服务配置活动计时器,这些事件将发生在与HTTP请求无关的后台线程上”。我现在需要使用延迟活动,而且不像他的解决方案架构那样工作。有没有人遇到过这个问题,并找到了一个很好的解决方案?这个例子与许多地方有关,但我还没有看到任何人遇到过这个问题,这对我来说似乎有点阻碍。如何在基于ASP.Net网络的工作流程中使用WF DelayActivity
编辑:问题是来自工作流程的结果通过HttpContext返回到Web应用程序。我正在使用带有useActiveTimers的ManualWorkflowSchedulerService,并且这适用于大多数情况,因为工作流事件是从Web应用程序触发的,并且当返回工作流结果并且Web应用程序可以继续处理时,HttpContext仍然存在。当使用延迟活动时,处理发生在后台线程上,并且当它尝试将结果返回给Web应用程序时,没有有效的HttpContext(因为没有Http请求),所以进一步处理失败。也就是说,webapp正在尝试处理工作流程结果,但没有http请求。
我想我需要在工作流程内完成所有的延迟活动处理,而不是交给网络应用程序。
干杯。
你遇到的确切问题是什么? – 2009-09-16 07:54:45