1

我有一个工作流,托管在工作流服务主机中,它可以具有通过其特定部分的三个路径之一。我使用包含三个 PickBranch 活动的 Pick 活动创建了它。这三个中的两个有一个 ReceiveSendReply 作为触发器,而一个有一个延迟。

此时,我可以通过调用任一接收来使工作流继续,但如果我试图让延迟超时,它永远不会。我还在一个普通的并行活动中尝试过它——同样,任何一个接收都会向前推进工作流程,但延迟永远不会超时/触发。

我读过的所有内容都表明它应该有效,但事实并非如此。我查看了工作流跟踪日志,我可以看到延迟正在执行,但它永远不会回来。

146: Activity [160] "Delay Sequence" scheduled child activity [201] "Delay"
147: Activity [201] "Delay" is Executing
{
    Arguments
        Duration: 00:10:00
}

有没有其他方法可以对此进行建模。似乎 Pick 应该做我需要的,但我不能让它工作。为了完整起见,我创建了一个非常简单的应用程序,在其中我用两个接收作为选择分支的触发器和一个延迟作为另一个的触发器来建模它,它在那里工作......

任何帮助/想法将不胜感激。谢谢!

4

2 回答 2

1

我发现我将 CorrelationInitializer 放置在错误的位置,并且它似乎干扰了延迟的回调机制。一旦我将初始化程序移动到我正在做的正确位置,延迟就开始起作用了。感谢您的意见和帮助!

于 2012-10-22T12:19:45.957 回答
0

工作流程是否持续存在并已卸载?延迟活动会触发这种情况,但如果您没有在服务中运行,您可能必须自己处理工作流的加载,因为它已被卸载。

于 2012-10-19T11:46:07.533 回答