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の更新プログラムがまだインストールされていない他の環境Staging
とProduction
、を持っています。私は、これらのサーバー上でSqlWorkflowInstanceStoreVersionTable
をチェックし、実際にテーブルには、しかし、ワークフローが
ありがとうございました。基本的に私のアプリケーションのターゲットフレームワークは4.5.1です。私たちは新しいドットネットフレームワークをサーバーにインストールしています。 Window Workflow Foundationに4.6.2までの更新はありませんので、すべてが機能していました。ただし、4.7ではWindows Workflowに変更があります。とにかく私の問題を解決するために私はちょうどSqlWorkflowInstanceStoreVersionTableの行を追加しました – LP13
sidenoteにはどこに私は、NET 4.5.1のWWFのSQLスクリプトを取得する – LP13
ここでは、WF SQLの永続性スクリプトを見つけることができます:C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ SQL \ en – ajawad987