2011-03-17 15 views
0

我試圖使用SPWeb.GetListItem()通過已知的URL(MSDN)獲取項目。SPWeb.GetListItem在第一次調用時發生COMException - 秒很好

所以基本上我做了以下內容:

using (SPSite spSite = SPContext.Current.Site) 
{ 
    using (SPWeb spWeb = spSite.RootWeb) 
    { 
     SPListItem spListItem = spWeb.GetListItem 
      ("/sites/testSite/Lists/testList/Folder/Subfolder"); 
    } 
} 

如果你想知道,我試圖讓文件夾「子文件夾」做的東西吧。

的問題是,我第一次打電話,我得到一個COMExpeption:

無法完成此動作。

請再次嘗試 。 <nativehr>0x80004005</nativehr><nativestack></nativestack>

描述:未處理的異常 的 當前web請求的執行過程中發生。請查看 堆棧跟蹤以瞭解有關 錯誤的更多信息,以及它源自 的代碼。

異常詳細信息: System.Runtime.InteropServices.COMException: 無法完成此動作。

somereports關於收到COMException發生,因爲你需要使用完整的相關網站的網址,這樣反而/Lists/testList/Folder/SubFolder,你需要使用/sites/testSite/Lists/... - 我這樣做。我也嘗試使用絕對URL(http://sharepoint/sites/...)。問題依然存在:第一次嘗試獲取spListItem時,出現COMException。
當我嘗試在異常後再次運行代碼時,SPListItem就會收到。所有後續的調用也都可以工作 - 只有第一個調用失敗。

AmI做一些初始化錯誤或類似的東西?

回答

1

嘗試實例,其中列表項目所在的網站 - _uiserWeb

我tryed Site.RootWeb.GetListItem(item_url) - 它給了我之後調入代碼第一null時間和被罰款第二次。

_item = _userWeb.GetListItem(item_url) 
相關問題