WorkflowRuntime.StopRuntime卡住了

时间:2012-11-14 09:08:13

标签: c# .net windows-services workflow workflow-foundation

我有一个非常基本的工作流程托管在Windows服务(C#,。net 3.5)中,但有一个奇怪的问题。

配置:

  • 运行时和工作流实例在同一个线程中创建。
  • 我有一个后台线程在“无限”循环中对实例执行Start,以使其连续运行。

当从工作流中抛出异常时,我想清理并关闭该服务。问题是,它不起作用:)

我有一个基本上做的停止方法:

  

...
  backgroundThread.Join(..);
  if(workflowRuntime.isStarted)
  workflowRuntime.StopRuntime();
  ...

这里的问题是workflowRuntime.StopRuntime()。调用时,它只是卡住了。没有返回值,异常或超时。它就停止了。我也试过使用workFlowInstance.TryUnload(),但同样的事情。它只是卡住了。

我检查了线程ID,它与创建和启动工作流程的stop方法中的相同。

有什么想法吗?如果我只是跳过工作流运行时的所有清理,则服务最终处于僵尸状态,无法关闭。

0 个答案:

没有答案