簡體   English   中英

將WF 4實例存儲架構遷移到WF 4.5后無法運行工作流

[英]Can't run workflows after migrating WF 4 instance store schema to WF 4.5

我真的在這里遇到一個非常不尋常的問題。 我們剛剛將dev堆棧升級到Visual Studio 2012 / .NET 4.5。

我們希望升級到最新版本的Workflow Foundation(4.5),這意味着還要升級SQL工作流實例存儲架構,以便我們可以使用並行版本控制等新功能。

首先,我首先運行與.NET 4.5一起安裝的架構升級腳本:C:\\ Windows \\ Microsoft.NET \\ Framework \\ v4.0.30319 \\ SQL \\ en \\ SqlWorkflowInstanceStoreSchemaUpgrade.sql

然后我運行了我的工作流程測試,一切正常。

下一步是將模式和數據更改合並到我們的SQL Server數據庫項目(VS 2012中的新項目)中,以便這些更改將作為構建過程的一部分自動構建和部署。

我從更新的數據庫實例到數據庫項目進行了模式比較,數據庫項目識別並導入了所有模式更改,並更新了我們的參考數據腳本,以便SqlWorkflowInstanceStoreVersion表具有正確的值。

然后我發布了該項目,這意味着目標數據庫被刪除,重新創建,並填充了默認參考數據(包括商店版本行)。

我再次運行我的工作流測試,這次工作流測試所有超時等待工作流線程返回。 PersistableIdle處理程序被調用到Unload,但是Unloaded處理程序永遠不會被調用,所以現在之間有些東西搞砸了。

這顯然與重新創建數據庫這一事實有關,但我在VS 2012中使用Schema Compare工具看不出任何差異。

在我們解決這個問題之前,我們無法繼續使用WF 4.5功能,有沒有人知道這里可能會發生什么?

不確定您是否找到了解決方案,但我認為以下信息可能會幫助其他人解決升級問題。

這篇MSDN文章暗示了就地升級的一個問題: .NET 4.5中的Windows Workflow Foundation有什么新功能

.NET Framework 4.5中引入的新Windows Workflow Foundation功能不適用於以該框架的早期版本為目標的項目。 如果將面向.NET Framework 4.5的項目重新定位到以前版本的框架,則可能會出現幾個問題。

C#表達式將在設計器中替換, 並在XAML中設置消息Value。

將發生許多構建錯誤,包括以下錯誤。

文件格式與當前定位框架不兼容。 要轉換文件格式,請明確保存文件。 保存文件並重新打開設計器后,此錯誤消息將消失。

升級SQL持久性存儲似乎使得工作流必須針對.Net 4.5進行重新編譯,或者它現在支持版本控制時嘗試與持久性存儲進行通信。

在您的情況下可能沒有必要,但我們還必須創建更新映射以“升級”活動定義和運行實例。 MSDN在此提供了一篇冗長的文章: 如何:更新正在運行的工作流實例的定義

動態更新參考也很有用: 動態更新

這是一個非常復雜的過程,但之后一切都開始了。

您可能還會發現這很有用: 如何:並排托管多個版本的工作流

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM