民间, 我遇到了WF4问题。我正在使用他的endpoint.tv网络广播(http://archive.msdn.microsoft.com/wf4BatchJob)中的Ron Jacobs演示之后建模批处理引擎/工作调度程序。在他的例子中,“工作分支”只是在一个while循环中计算。对于我的示例,我向另一个名为SampleEngine.xamlx的工作流发送消息,该工作流进行计数。每次计数,此工作流程都会回调父级(JobScheduler.xamlx)并报告已完成的进度。这非常有效,我现在正在使用它 - 我可以在AppFabric仪表板中调度作业并观察它的进度,并调用QueryProgress(我的调度程序工作流程中的发送/接收对)。
问题在于,当我使用iireset模拟服务器故障或其他问题时,工作流程(sampleengine.xamlx和jobscheduler.xamlx)都会重新联机并显示为“进行中”。问题是他们都没有追踪任何更多的事件 - 他们似乎在某个地方停滞不前。此外,它们都没有响应服务消息,就像我通常看到WF服务响应时没有为工作流的当前状态安排接收活动。
我在各地都添加了持久性活动,并确保在所有sendreply活动结束后我坚持但这没有任何区别。
正如我所说,我对Ron的样本所做的唯一更改是我的工作分支不在while循环中 - 它向子工作流(sampleengine.xamlx)发送一条消息以启动它。如果服务器在执行期间没有停机,则工作流之间的相关性都能正常工作。
任何关于我需要做什么的想法,以便让工作流程在IISreset之后停在他们中断的地方,我们将不胜感激。罗恩的样本一直在计算我的地方停止的地方。
答案 0 :(得分:0)
确保在AppFabric配置中打开工作流的持久性存储。它默认不启用。