2017-09-21 8 views
0

Windowsワークフローサービスには2つのシーケンスがあります。これら2つのシーケンスの間には、遅延アクティビティがnew TimeSpan(0,0,10)(10秒)に設定されています。遅延後にWindowsワークフローが復帰しない

MainSequence 
    Sequqnce_1 
    Delay 
    Sequqnce_2 

したがって、最初のシーケンス実行後、WFはSQLサーバーに保存され、その後10秒後に2番目のシーケンスが実行されます。

これは過去3年間働いていました。しかし、WFが、私はweb.configファイルでsystem.diagnisticsを有効にし、ログに私は、次の

のDisplayName参照遅延後

を目覚めた後に停止突然(昨日から):「Sequence_1」、のInstanceId:「2」を持っています 'クローズ' 状態に完成

活動 'System.Activities.Statements.Sequence' のDisplayName: 'MainSequenceを'、のInstanceId: '1' 予定の子アクティビティ 'System.Activities.Statements.Delay' のDisplayName : '遅延'

その後、ログには何もありません。

私はワークフローデータベースをチェックすると、私はPendingTimer私はPendingTimer NULLは、この問題を引き起こしている、とWFがヌルとして設定されている理由、それはある場合ならばわからないNULL

で気づいたしかし、私は [System.Activities.DurableInstancing].InstancesTableのエントリを参照してください?私の同僚を判明

UPDATE 1
は、サーバーに.NET 4.7をインストールし、そのサーバー上のWindows Updateを実行しました。ただし、WFアプリケーションはフレームワーク4.5.1を対象に設定されています。 私はできません

データベースのバージョンを私が起こっていただきました!見にトレースETWを有効にして、私は次の例外を参照してください

アップデート2アップデートは、この問題に

を引き起こしているかどうかわからないですSystem.Activities.DurableInstancing.SqlWorkflowInstanceStoreVersionTableに行が存在しないため、決定する必要があります。このテーブルは、それが使用して作成または

完全例外

のSystem.InvalidOperationException、mscorlib、 バージョン= 4.0.0.0、文化にアップグレードされたフレームワークのバージョンに対応する単一の行を含むべきです=中立 PublicKeyToken = b77a5c561934e089 のバージョン System.Activities.DurableInstancing.SqlWorkflowInstanceStoreVersionTableに行が存在しないため、データベースを特定できません。 このテーブルには、作成されたフレームワークのバージョン に対応する単一の行が含まれているか、または にアップグレードされている必要があります。 System.Runtime.AsyncResult.End [TAsyncResult](IAsyncResult result): System.Activities.DurableInstancing.SqlWorkflowInstanceStoreAsyncResult。端( たIAsyncResult結果) System.Activities.DurableInstancing.PersistenceTask.CommandCompletedCallback( たIAsyncResult結果)でのSystem.InvalidOperationException:何行が でSystem.Activities.DurableInstancing.SqlWorkflowInstanceStoreVersionTable見出されなかったとして データベースのバージョンを決定することができません。 このテーブルには、作成またはアップグレードされたフレームワークのバージョン に対応する単一の行が含まれている必要があります。 System.Activities.DurableInstancing.PersistenceTask.CommandCompletedCallbackで System.Activities.DurableInstancing.SqlWorkflowInstanceStoreAsyncResult.EndでSystem.Runtime.AsyncResult.End [TAsyncResult](たIAsyncResult結果)(たIAsyncResult 結果)(たIAsyncResult 結果)で

私がSystem.Activities.DurableInstancing.SqlWorkflowInstanceStoreVersionTableをチェックすると、それは空です。しかし、このテーブルは常に空でした。この問題Developmentサーバー上で起こっている(私たちは.NET 4.7をインストールしてWindows Updateを実行した場所)

は、我々はまた、Windowsの更新プログラムがまだインストールされていない他の環境StagingProductionを持っています。私は、これらのサーバー上でSqlWorkflowInstanceStoreVersionTableをチェックし、実際にテーブルには、しかし、ワークフローが

答えて

1

あなたの.NET Frameworkの移行のために、このリンクを経由する場合がありますこれらのサーバー上で任意の問題なしに罰金を実行している空である

https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/runtime/4.6.2-4.7

+0

ありがとうございました。基本的に私のアプリケーションのターゲットフレームワークは4.5.1です。私たちは新しいドットネットフレームワークをサーバーにインストールしています。 Window Workflow Foundationに4.6.2までの更新はありませんので、すべてが機能していました。ただし、4.7ではWindows Workflowに変更があります。とにかく私の問題を解決するために私はちょうどSqlWorkflowInstanceStoreVersionTableの行を追加しました – LP13

+0

sidenoteにはどこに私は、NET 4.5.1のWWFのSQLスクリプトを取得する – LP13

+0

ここでは、WF SQLの永続性スクリプトを見つけることができます:C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ SQL \ en – ajawad987

関連する問題