Windows 工作流程 4 工作流程停止
我的 Windows 工作流程停滞不前。我所说的停止是指托管在 iis 中的工作流超过了挂起的计时器,而没有继续执行下一步。如果我创建另一个工作流程,它将再次启动工作流程引擎,但我真的不想创建一个工作流程来执行此操作。
该工作流程预计运行 30 天。我们现在正在测试它,为了测试它,我编写了一些代码来提取模拟日的配置文件值。现在 5 分钟等于 1 天,所有逻辑都基于根据模拟天计算出的时间跨度。查看 InstancesTable,我发现它正确设置了 PendingTimer(并且我知道 PendingTimer 与我的时区不同)。 SuspensionExceptionName 或 SuspensionReason 列中没有异常,服务器的事件日志中也没有任何异常。
那么我该如何排除或隔离问题所在呢?
I have a windows workflow that is stalling. By stalling I mean a workflow, hosted in iis, goes past the pending timer without it continuing to the next step. If I create another workflow it will kick start the workflow engine again, but I don't really want to create a workflow to do just that.
The workflow is intended to be run over the course of 30 days. We are testing it now and to test it I wrote some code to pull config file values in for simulation-days. Right now 5 minutes is equal to 1 day and all the logic is based on Timespans calculated from the simulation-days. Looking at the InstancesTable I see that it sets the PendingTimer correctly (and I know the PendingTimer is not the same timezone as me). There is no exception in the SuspensionExceptionName or SuspensionReason columns, nor anything in the eventlog of the server.
So what can I do to troubleshoot or isolate what the problem is?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
听起来 IIS 正在回收 AppDomain 并且 WorkflowServiceHost 没有重新加载,因为没有外部请求传入。如果您使用的是 Windows Server AppFabric,您可以将其配置为立即重新启动 AppDomain 和 WorkflowServiceHost。否则,您可以从工作流服务请求 WSDL 以“手动”加载 WorkflowServiceHost。
Sounds like IIS is recycling the AppDomain and the WorkflowServiceHost is not reloaded because there is no external request coming in. If you are using Windows Server AppFabric you can configure it to restart the AppDomain and the WorkflowServiceHost right away. Otherwise you can request the WSDL from the workflow service to "manually" load the WorkflowServiceHost.
你不应该这样做。出了问题 - AppFabric 工作流管理服务应该使用持久计时器唤醒您的工作流。
检查 Windows 事件日志以查看该服务是否出现错误。
You shouldn't have to do that. Something is wrong - the AppFabric Workflow Management Service should be waking up your workflows with Durable Timers.
Check the Windows Event log to see if you are getting errors from that service.