ここで非常に珍しい問題に本当に苦労しています。開発スタックを Visual Studio 2012 / .NET 4.5 にアップグレードしました。
Workflow Foundation (4.5) の最新バージョンにアップグレードしたいと考えています。これは、SQL ワークフロー インスタンス ストア スキーマもアップグレードすることを意味し、サイド バイ サイド バージョニングなどの新機能を使用できるようにします。
最初に、C:\Windows\Microsoft.NET\Framework\v4.0.30319\SQL\en\SqlWorkflowInstanceStoreSchemaUpgrade.sql にある .NET 4.5 と共にインストールされたスキーマ アップグレード スクリプトを実行することから始めました。
次に、ワークフロー テストを実行したところ、すべて正常に機能しました。
次のステップは、スキーマとデータの変更を SQL Server データベース プロジェクト (VS 2012 の新しいプロジェクト) に組み込み、これらの変更がビルド プロセスの一部として自動的にビルドおよびデプロイされるようにすることでした。
更新されたデータベース インスタンスからデータベース プロジェクトへのスキーマ比較を行い、すべてのスキーマ変更を識別してインポートし、SqlWorkflowInstanceStoreVersion テーブルが正しい値になるように参照データ スクリプトを更新しました。
次に、プロジェクトを公開しました。つまり、ターゲット データベースが削除され、再作成され、既定の参照データ (ストア バージョンの行を含む) が入力されました。
ワークフロー テストを再度実行したところ、ワークフロー スレッドが戻るのを待っている間にワークフロー テストがすべてタイムアウトになりました。PersistableIdle ハンドラーは Unload に呼び出されますが、Unloaded ハンドラーは呼び出されないため、その間に何かが台無しになっています。
明らかにデータベースが再作成されたことに関係していますが、VS 2012 のスキーマ比較ツールを使用しても違いはわかりません。
この問題が修正されるまで、WF 4.5 の機能をこれ以上進めることはできません。