Framework升级后,卸载实例上的Workflow 3.5序列化异常

问题描述

我们正在Asp.Net Web应用程序上运行状态机工作流3.5。

.Net框架从3.5升级到4.6.1后,调用instance.Unload()时出现序列化异常

我尝试在Instance.Unload()之前添加Thread.Sleep(1000)并有效

我的问题是,如何在不使用Thread.Sleep(1000)的情况下解决此问题。

请注意,我们每次使用工作流程时都会初始化一个新的WorkflowRuntime

解决方法

问题的根本原因是我们没有指定手动调度程序,而是让运行时使用默认的自动调度程序,它使用不同的线程来处理工作流。

检查 this article

中的手动调度程序部分