【发布时间】:2011-04-11 14:22:01
【问题描述】:
各位, 我一直在处理 WF4 问题。在 Ron Jacobs 在他的 endpoint.tv 网络广播 (http://archive.msdn.microsoft.com/wf4BatchJob) 中的演示之后,我正在对批处理引擎/工作调度程序进行建模。在他的示例中,“工作分支”仅在 while 循环内计数。对于我的示例,我向另一个名为 SampleEngine.xamlx 的工作流发送了一条消息,该工作流进行计数。每次计数,此工作流都会回调父级 (JobScheduler.xamlx) 并报告已完成的进度。这非常有效,我现在可以使用它了 - 我可以在 AppFabric 仪表板中和通过调用 QueryProgress(我的调度程序工作流程中的发送/接收对)安排作业并观察它的进度。
问题在于,当我执行 iireset 来模拟服务器故障或其他问题时,工作流(sampleengine.xamlx 和 jobscheduler.xamlx)都重新联机并显示为“进行中”。问题是他们都不再跟踪任何事件 - 他们似乎在某个地方停滞不前。此外,它们对服务消息的响应方式与我通常看到的在工作流的当前状态没有安排接收活动时响应的方式相同。
我在所有地方都添加了持久化活动,并确保在我的所有 sendreply 活动结束后继续存在,但这并没有什么不同。
正如我所说,我对 Ron 的示例所做的唯一更改是我的工作分支不在 while 循环内 - 它向子工作流 (sampleengine.xamlx) 发送一条消息以启动它。如果服务器在执行期间没有关闭,工作流之间的相关性都可以正常工作。
任何关于我需要在这里做什么才能让工作流在 IISreset 后从中断处继续的想法将不胜感激。 Ron 的样本不断地计算我的样本在哪里停止。
【问题讨论】:
标签: workflow persistence workflow-foundation-4 appfabric