Workflow 如何在基于ASP.Net web的工作流中使用WF DelayActivity 我有一个Web应用程序,我正在添加工作流功能来使用Windows工作流基金会。我的解决方案是基于K.Scott Allen在OdeToCode上的示例。一开始,我没有意识到警告的重要性。如果您对手动调度服务使用延迟活动并配置活动计时器,这些事件将发生在与HTTP请求无关的后台线程上。我现在需要使用延迟活动,但它不能像他的解决方案架构那样工作。有没有人遇到过这个问题并找到了一个很好的解决方案?这个例子在很多地方都有链接,但我没有看到其他人遇到过这个问题,对我来说,这似乎有点像是一个阻碍

Workflow 如何在基于ASP.Net web的工作流中使用WF DelayActivity 我有一个Web应用程序,我正在添加工作流功能来使用Windows工作流基金会。我的解决方案是基于K.Scott Allen在OdeToCode上的示例。一开始,我没有意识到警告的重要性。如果您对手动调度服务使用延迟活动并配置活动计时器,这些事件将发生在与HTTP请求无关的后台线程上。我现在需要使用延迟活动,但它不能像他的解决方案架构那样工作。有没有人遇到过这个问题并找到了一个很好的解决方案?这个例子在很多地方都有链接,但我没有看到其他人遇到过这个问题,对我来说,这似乎有点像是一个阻碍,workflow,workflow-foundation,Workflow,Workflow Foundation,编辑:问题是工作流的结果通过HttpContext返回给web应用程序。我正在将ManualWorkflowSchedulerService与useActiveTimers一起使用,这在大多数情况下都可以正常工作,因为工作流事件是从web应用程序触发的,当返回工作流结果并且web应用程序可以继续处理时,HttpContext仍然存在。当使用延迟活动时,处理在后台线程上进行,并且当它尝试将结果返回到web应用程序时,没有有效的HttpContext,因为没有Http请求,因此进一步的处理失败。也就

编辑:问题是工作流的结果通过HttpContext返回给web应用程序。我正在将ManualWorkflowSchedulerService与useActiveTimers一起使用,这在大多数情况下都可以正常工作,因为工作流事件是从web应用程序触发的,当返回工作流结果并且web应用程序可以继续处理时,HttpContext仍然存在。当使用延迟活动时,处理在后台线程上进行,并且当它尝试将结果返回到web应用程序时,没有有效的HttpContext,因为没有Http请求,因此进一步的处理失败。也就是说,webapp正在尝试处理工作流结果,但没有http请求

我认为我需要在工作流中完成所有延迟后活动处理,而不是将其交给web应用程序


干杯。

您没有描述您遇到的问题。但也许这会有所帮助

您可以将ManualWorkflowSchedulerService与useActiveTimers一起使用,工作流将在另一个线程上继续。通常情况下,这很好,因为您的HTTP请求已经完成,这并不重要


但是,如果您需要完全控制,工作流运行时将允许您使用GetLoadedWorkflows函数处理所有加载的工作流。这将返回WorkflowInstance对象的集合。使用这些选项,您可以调用GetWorkflowNextItemExpiration来检查哪个已过期。如果是,您可以手动恢复它。在这种情况下,您希望将ManualWorkflowSchedulerService与useActiveTimers=false一起使用,以便也可以控制最后一个线程。然而,在大多数情况下,使用useActiveTimers=true非常有效

你遇到的确切问题是什么?