2011-06-16 39 views
0

錯誤: InstancePersistenceCommand的執行被中斷,因爲實例'42ca66e7-35e3-462e-9594-a98ee009d2e2'尚未保存到實例商店。在長時間運行的工作流服務上調用操作(接收活動)時出現WF4錯誤

當我在已從內存卸載的現有工作流實例上調用第二個接收活動時,會發生這種情況。如果實例仍在記憶中,我沒有問題。等待1分鐘或停止調試器後,實例會被卸載。

我可以在ID爲42CA66E7-35E3-462E-9594-A98EE009D2E2的System.Activities.DurableInstancing.InstancesTable表中看到一條記錄。

任何想法,爲什麼我有這個問題?

更新

這似乎是我的工作流的狀態不被持久化和/或持久性沒有發生正常。 Here's is a workflow instance record in the System.Activities.DurableInstancing.InstancesTable table.只是我還是應該在某處看到一些序列化的狀態?

如果我在工作流中使用未標記爲[Serializable]的類並嘗試保留它,會發生什麼?

+0

您是否在Windows Server AppFabric或vanilla IIS下託管? – 2011-06-16 20:54:07

+0

香草IIS。其實我還沒有部署,我正在開發使用IIS Express和SSL。 – 2011-06-16 21:10:50

+0

您是否在機器上的事件日誌中看到任何內容 - 例如可能會顯示SerializationException? – 2011-06-17 18:46:19

回答

0

我發現序列化因爲工作流中使用的某些類型的某些問題而中斷。

第一個問題是我用[DataMember]標記了一個沒有set訪問器的屬性。 NetDataContractSerializer無法序列化該類型,直到我刪除該屬性。

第二個問題是我有一個IEnumerable類型的工作流變量,顯然它沒有標記爲Serializable或DataContract。我不確定當我這樣做時我在想什麼。

這些問題很容易發現之後瞭解了WorkflowServiceTraceBehavior on Ron Jacobs blog

相關問題