2010-02-16 93 views
1

我有一個奇怪的。我試圖使用以下方式分配工作流任務:SPUser未標記爲可序列化

private void createBookingTask_MethodInvoking(object sender, EventArgs e) 
     { 
      createBookingTask_TaskId = Guid.NewGuid(); 
      createBookingTask_TaskProperties.Title = "New HFSC Booking"; 
      createBookingTask_TaskProperties.AssignedTo = @"NET\352488" 
      createBookingTask_TaskProperties.DueDate = DateTime.Now.AddDays(7); 
      createBookingTask_TaskProperties.TaskType = 1; 
     } 

OnTaskChanged活動的事件處理程序不包含任何代碼。 Visual Studio調試器被附加,並沒有得到一個異常。在此任務需要很長時間之前提交InfoPath表單才能導致此工作流程錯誤。上面的代碼用於工作流程的第二個任務。第一項任務很有魅力。這第二個工程提供了我不包括OnTaskChanged活動。如果此活動被禁用,工作流程將運行並愉快地完成。兩個任務的OnTaskChanged事件處理程序都不包含代碼。如果第二個任務OnTaskChanged活動不是那麼禁用我收到一個工作流錯誤,並在12 /記錄以下條目:

System.Workflow.Runtime.Hosting.PersistenceException: 類型「Microsoft.SharePoint.SPUser」 in Assembly'Microsoft.SharePoint, Version = 12.0.0.0,Culture = neutral, PublicKeyToken = 71e9bce111e9429c'is 未標記爲可序列化。 ---> System.Runtime.Serialization.SerializationException: 類型 'Microsoft.SharePoint.SPUser' 在 大會 'Microsoft.SharePoint程序, 版本= 12.0.0.0,文化=中性 公鑰= 71e9bce111e9429c' 是 未標作爲可序列化。

第二項任務的活動設置與第一項任務完全相同。 CreateTask - > OnTaskChanged - > CompleteTask。這只是OnTaskChanged似乎打破了工作流程,但只是爲了這個第二個任務,以同樣的方式設置。

+0

您有任何其他事件或類似的定義?特別是在某些種類的序列化中流血的事件尤其臭名昭着。 –

+0

你有堆棧跟蹤嗎?你在哪裏使用SPUser類?還有SPUserInfo,這是不可序列化:(所以當我有問題序列化SPUserInfo我創建SPUserInfoSerializable與我自己的領域。Eh。 –

回答

2

您是否在WorkFlow中存儲了SPUser類型的變量?

+0

事實證明,是的,我是,我沒有意識到。看起來要麼是因爲這是OnTaskChanged活動奇怪地觸發了錯誤,謝謝。 –

相關問題