我有一个非常基本的工作流程托管在Windows服务(C#,。net 3.5)中,但有一个奇怪的问题。
配置:
当从工作流中抛出异常时,我想清理并关闭该服务。问题是,它不起作用:)
我有一个基本上做的停止方法:
...
backgroundThread.Join(..);
if(workflowRuntime.isStarted)
workflowRuntime.StopRuntime();
...
这里的问题是workflowRuntime.StopRuntime()。调用时,它只是卡住了。没有返回值,异常或超时。它就停止了。我也试过使用workFlowInstance.TryUnload(),但同样的事情。它只是卡住了。
我检查了线程ID,它与创建和启动工作流程的stop方法中的相同。
有什么想法吗?如果我只是跳过工作流运行时的所有清理,则服务最终处于僵尸状态,无法关闭。