【发布时间】:2017-09-21 15:38:53
【问题描述】:
我们有两个序列的 Windows 工作流服务。在这两个序列之间,延迟活动设置为new TimeSpan(0,0,10),即 10 秒。
MainSequence
Sequqnce_1
Delay
Sequqnce_2
因此,在执行第一个序列后,WF 会持续到 SQL 服务器,然后在 10 秒后它会唤醒以执行第二个序列。
这在过去 3 年里一直有效。但是突然(从昨天开始)WF在延迟醒来后停止
我在 web.config 中启用了system.diagnistics,在日志中我看到以下内容
DisplayName: 'Sequence_1', InstanceId: '2' 已完成 “关闭”状态
活动“System.Activities.Statements.Sequence”,显示名称: 'MainSequence', InstanceId: '1' 计划的子活动 'System.Activities.Statements.Delay', DisplayName: '延迟'
之后,日志中就没有任何内容了。
当我检查工作流数据库时,我看到了
[System.Activities.DurableInstancing].InstancesTable 但是我注意到 PendingTimer 是 NULL
我不确定PendingTimer NULL 是否会导致此问题,以及是否是 WF 将其设置为 null 的原因?
更新 1
结果我的同事在服务器上安装了 .Net 4.7 的服务器上运行了 Windows 更新。但是 WF 应用程序设置为目标框架 4.5.1。
我不确定更新是否导致此问题
更新 2
我启用了 ETW 跟踪以查看发生了什么,我看到了以下异常
无法确定数据库的版本,因为在 System.Activities.DurableInstancing.SqlWorkflowInstanceStoreVersionTable 中未找到任何行。此表应包含与创建或升级到的框架版本相对应的单行
完全异常
System.InvalidOperationException,mscorlib, 版本=4.0.0.0,文化=中性, PublicKeyToken=b77a5c561934e089的版本 无法确定数据库,因为在 System.Activities.DurableInstancing.SqlWorkflowInstanceStoreVersionTable。 此表应包含与版本对应的单行 使用它创建或升级的框架 到。在 System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult 结果)在 System.Activities.DurableInstancing.SqlWorkflowInstanceStoreAsyncResult.End(IAsyncResult 结果)在 System.Activities.DurableInstancing.PersistenceTask.CommandCompletedCallback(IAsyncResult 结果)System.InvalidOperationException: 无法确定数据库的版本,因为未找到任何行 在 System.Activities.DurableInstancing.SqlWorkflowInstanceStoreVersionTable。 此表应包含与版本对应的单行 使用它创建或升级到的框架。在 System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult 结果)在 System.Activities.DurableInstancing.SqlWorkflowInstanceStoreAsyncResult.End(IAsyncResult 结果)在 System.Activities.DurableInstancing.PersistenceTask.CommandCompletedCallback(IAsyncResult 结果)
当我检查System.Activities.DurableInstancing.SqlWorkflowInstanceStoreVersionTable 时,它是空的。然而,这张桌子一直是空的。这个问题发生在Development 服务器上(我们运行安装了 .NET 4.7 的 Windows 更新)
我们还有其他环境 Staging 和 Production,尚未安装 Windows 更新。我在这些服务器上检查了SqlWorkflowInstanceStoreVersionTable,确实该表是空的,但是工作流在这些服务器上运行良好,没有任何问题
【问题讨论】:
标签: .net wcf workflow-foundation-4 workflow-foundation