2011-03-17 65 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) 
相关问题