我正在研究支持在單個操作中導入多個文檔的SharePoint應用程序。我還有一個ItemAdded事件處理程序,用於執行項目元數據的一些基本維護。此事件針對導入的文檔和手動創建的文檔都會觸發。拼圖的最後一部分是我實現的批處理操作功能,用於啓動工作流並更新另一個元數據字段。Sharepoint COMException 0x81020037
我能夠通過提取SPListItem的文件數據導致COMException 0x81020037。該文件只是一個InfoPath表單/ XML文檔。我能夠修改XML併成功將其推回到SPListItem中。當我之後立即啓動自定義功能並修改元數據時,偶爾會導致COM錯誤。
錯誤消息基本上表明該文件已被另一個線程修改。似乎ItemAdded事件仍在將文件寫回數據庫,而自定義功能正在改變元數據。我嘗試過放入延遲和錯誤捕獲循環來嘗試檢測SPListItem是否可以安全地修改,但很少成功。
有沒有辦法判斷另一個線程是否對文檔有鎖定?