2011-09-11 29 views
0

我有以下代碼:的SharePoint splistitem.Update失敗

using(SPWeb web = ... 
{ 
      .... 

    SPListItem item = GetItemById(id); 

    item["Status"] = status; 
    item["Reason"] = reason; 

    item.Update(); 
} 

而且我得到了一個異常「無法完成此操作」 ......然而,試圖弄明白,我發現了一些奇怪的... ...

我把一個斷點完全放在行item.Update()...在調試時我讓異常發生,然後我去了我的Watch窗口,並放在那裏「item.Update()」 ...該項目已更新...

然後..我重新開始,但是,這一次,我試過「item.Update( )「在觀察窗口,拋出異常..然後我按F10執行我的代碼,併爲我的驚喜,它成功更新了項目..

我已經試過這遍地,總是是相同的......因此,出於某種奇怪的原因,第一次失敗了,第二次失敗了。有人知道爲什麼嗎?

編輯:

我已經試過這樣:

SPSecurity.RunWithElevatedPrivileges(delegate() 
{ 
    .... 
    item.Update(); 
}); 

但是,它仍然失敗,現在與例外: 「操作是無效的,由於當前狀態」 ...

編輯2:

這是青苔2007年,它是一個Web應用程序(ASP。淨)連接到SharePoint站點,這兩列存在..

我發現了另一件事..如果我在item.Update()中放置一個斷點,並按F10,它的工作原理..項目更新..和不拋出任何異常......但在正常excecution,它總是失敗..

+0

你檢查事件日誌或瞭解更多信息的日誌文件? – c0deNinja

+0

我沒有檢查在SharePoint的日誌,發現這個:「錯誤:無法OpenThreadToken」我不太確定它是否與此問題有關....我已經添加更多信息的問題...也許這可以幫助.. x( – Osvier

+0

您正在使用哪個版本的SP?在哪個上下文(Web應用程序,Web服務,事件處理程序,控制檯等)中運行代碼?是否存在「狀態」和「原因」列? – int32

回答

相關問題