延迟后{Windows 44'工作流不会被唤醒

时间:2017-09-21 15:38:53

标签: .net wcf workflow-foundation-4 workflow-foundation

我们有两个序列的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',DisplayName:   'MainSequence',InstanceId:'1'预定子活动   'System.Activities.Statements.Delay',DisplayName:'延迟'

之后,日志中没有任何内容。

当我检查Workflow数据库时,我会看到该条目 [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结果)at at   System.Activities.DurableInstancing.SqlWorkflowInstanceStoreAsyncResult.End(IAsyncResult的   结果)在   System.Activities.DurableInstancing.PersistenceTask.CommandCompletedCallback(IAsyncResult的   结果)System.InvalidOperationException:   无法确定数据库的版本,因为未找到任何行   在   System.Activities.DurableInstancing.SqlWorkflowInstanceStoreVersionTable。   此表应包含与版本对应的单个行   它创建或升级到的框架。在   System.Runtime.AsyncResult.End [TAsyncResult](IAsyncResult结果)at at   System.Activities.DurableInstancing.SqlWorkflowInstanceStoreAsyncResult.End(IAsyncResult的   结果)在   System.Activities.DurableInstancing.PersistenceTask.CommandCompletedCallback(IAsyncResult的   结果)

当我检查System.Activities.DurableInstancing.SqlWorkflowInstanceStoreVersionTable时,它是空的。但是这张桌子一直都是空的。这个问题发生在Development服务器上(我们运行安装了.NET 4.7的Windows更新)

我们还有其他环境StagingProduction尚未安装Windows更新。我检查了这些服务器上的SqlWorkflowInstanceStoreVersionTable,确实表是空的,但是Workflow正常运行,没有任何问题在这些服务器上

1 个答案:

答案 0 :(得分:1)