2010-01-11 72 views
3

我正在使用Visual Studio 2010的Beta 2来获得对WF4的一些高级理解。我创建了一个工作流程,其中包含一个选择活动,它包含在If活动中。在挑选活动中,我有两个触发器,一个包含TimeSpan为10秒的延迟,另一个触发器有一个供经理批准的书签。如果经理未在分配的时间内批准,我试图使用延迟将“状态”变量设置为“过期”。这与Matt Milner在他的帖子中所做的非常相似:http://msdn.microsoft.com/en-us/library/ee342461.aspx,除了他使用DoWhile活动,而我需要使用我在这里描述的If活动。我也使用持久性和托管ASP.Net应用程序的工作流程。我在想,如果我看到的问题是由于互联网浏览器不能让工作流程在内存中运行而引起的,并且在延迟完成时无法让工作流程重新启动。Windows Workflow Foundation 4.0选择包含延迟活动的活动

+0

您遇到了什么问题? – 2010-01-12 04:34:59

+0

我有一个包含2个触发器的Pick,其中一个有一个Delay,它带有一个Assign,它将名为“state”的字符串变量的值设置为“Expired”。另一个触发器中有一个书签,如果书签被恢复,一些代码将处理批准。书签工作正常,只要我在延迟超时之前恢复它。问题是延迟期过后,状态设置为“过期”,我认为工作流应该完成并从持久性存储中删除,但不会被删除。 – 2010-01-12 13:24:50

+0

当BookmarkWait和延迟分支闲置时,您的工作流持续良好,对吗? – 2010-01-17 08:59:48

回答

1

如果使用WorkflowServiceHost或XAMLX托管工作流程,则需要配置WorkflowManagementService以重新加载并重新启动工作流程。如果您正在使用WorkflowApplication,则负责在持久保存后重新加载工作流程。

但正如克里斯所说:有关更多信息,实际上出了什么问题可能会有所帮助。

+0

我正在使用WorkflowApplication。我们有一个类似的.Net 3.5工作流程,有一个延迟14天的“过期”事件处理程序。当14天过去后,事件处理程序会自动为我们调用,并且Expired事件处理程序中的代码会在没有我们重新加载宿主应用程序中的工作流的情况下运行。当使用带有书签的Pick活动并延迟类似于事件处理程序以模拟状态机工作流程时,是否在.Net 4.0工作流程中进行了更改? – 2010-01-12 13:33:32

+0

好的,谢谢!你知道任何使用WorkflowServiceHost的好样本或教程吗?我开始考虑使用它,但我很难理解它。 – 2010-01-12 17:54:28

+0

从工作流服务应用程序开始。 XAMLX文件(注意额外的X)使用WorkflowServiceHost托管在IIS/Casini中。 – Maurice 2010-01-12 19:47:08

相关问题