我真的在这里遇到一个非常不寻常的问题。我们刚刚将开发堆栈升级到 Visual Studio 2012 / .NET 4.5。
我们想升级到最新版本的 Workflow Foundation (4.5),这意味着也要升级 SQL 工作流实例存储模式,以便我们可以使用新功能,例如并行版本控制。
首先,我首先在以下位置运行随 .NET 4.5 安装的架构升级脚本:C:\Windows\Microsoft.NET\Framework\v4.0.30319\SQL\en\SqlWorkflowInstanceStoreSchemaUpgrade.sql
然后我运行了我的工作流程测试,一切正常。
下一步是将架构和数据更改合并到我们的 SQL Server 数据库项目(VS 2012 中的新项目)中,以便这些更改将作为我们构建过程的一部分自动构建和部署。
我对更新后的数据库实例与数据库项目进行了模式比较,识别并导入了所有模式更改,并更新了我们的参考数据脚本,以便 SqlWorkflowInstanceStoreVersion 表具有正确的值。
然后我发布了该项目,这意味着目标数据库被删除、重新创建并填充了默认参考数据(包括商店版本行)。
我再次运行了我的工作流测试,这次工作流测试都超时了,等待工作流线程返回。PersistableIdle 处理程序被调用到 Unload,但 Unloaded 处理程序从未被调用,所以现在有些事情搞砸了。
这显然与重新创建数据库这一事实有关,但我在 VS 2012 中使用 Schema Compare 工具看不到任何差异。
在解决此问题之前,我们无法进一步使用 WF 4.5 功能,有人知道这里可能发生了什么吗?