AppFabric 下的 WF4 工作流在 IIS 重置后无法正常恢复

发布于 2024-10-31 11:21:50 字数 863 浏览 1 评论 0原文

各位, 我在 WF4 问题上遇到了一些麻烦。我正在根据 Ron Jacobs 在他的 endpoint.tv 网络广播中的演示(http:// /archive.msdn.microsoft.com/wf4BatchJob)。在他的示例中,“工作分支”仅在 while 循环内进行计数。对于我的示例,我向另一个名为 SampleEngine.xamlx 的工作流发送一条消息,该工作流执行计数。每次计数时,此工作流都会回调父级 (JobScheduler.xamlx) 并报告完成的进度。这工作完美,我现在可以工作了 - 我可以在 AppFabric 仪表板中以及通过调用 QueryProgress(我的调度程序工作流程中的发送/接收对)来安排作业并观察其进度。

问题是,当我执行 iireset 来模拟服务器故障或其他问题时,工作流程(sampleengine.xamlx 和 jobscheduler.xamlx)都会重新联机并显示为“进行中”。问题是他们都没有追踪任何更多的事件——他们似乎在某个地方停滞了。此外,当没有为工作流的当前状态安排接收活动时,它们都不会以与我通常看到 WF 服务响应相同的方式响应服务消息。

我已经在各处添加了持久活动,并确保在所有 sendreply 活动结束后仍然坚持,但这并没有产生任何影响。

正如我所说,我对 Ron 的示例所做的唯一更改是我的工作分支不在 while 循环内 - 它向子工作流 (sampleengine.xamlx) 发送一条消息来启动它。如果服务器在执行期间没有停机,工作流程之间的关联就会正常工作。

任何关于我需要在这里做什么才能让工作流在 IIS 重置后从中断处继续的想法将不胜感激。罗恩的样本在我的样本停止的地方继续计数。

Folks,
I've been having some trouble with a WF4 problem. I'm modeling a batch engine/work scheduler after Ron Jacobs' demo in his endpoint.tv webcast (http://archive.msdn.microsoft.com/wf4BatchJob). In his example, the "work branch" just counts inside a while loop. For my sample, I send a message to another workflow called SampleEngine.xamlx which does the counting. Every count, this workflow calls back to the parent (JobScheduler.xamlx) and reports progress completed. This works perfectly and I have it working now - I can schedule a job and watch it progress both in the AppFabric dashboard and by calling QueryProgress (a send/receive pair in my scheduler workflow).

The problem is that when I do an iireset to simulate a server failure or other problem, the workflows (sampleengine.xamlx and jobscheduler.xamlx) both come back online and show as "In Progress". The problem is neither of them track any more events - they seem to be stalled somewhere. Furthermore, neither of them respond to service messages in the same way that I normally see WF services respond when there's no receive activity scheduled for the workflow's current state.

I've added persist activities everywhere and made sure that I persist after the end of all of my sendreply activities but that hasn't made a difference.

As I said, the only changes I've made to Ron's sample is that my work branch is not inside a while loop - it sends a single message to the child workflow (sampleengine.xamlx) to start it. Correlation between the workflows all works properly if the server doesn't go down during execution.

Any thoughts as to what I need to do here in order to have the workflows pick up where they left off after an IISreset would be greatly appreciated. Ron's sample kept on counting where mine simply stops.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

趁微风不噪 2024-11-07 11:21:50

确保在 AppFabric 配置中打开工作流的持久存储。默认情况下不启用它。

Make sure you turn on the persistence storage for the workflow in the AppFabric configuration. It's not enabled by default.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文