我正在尝试使用SPWeb.GetListItem()
按已知网址(MSDN)获取商品。
所以基本上我正在做以下事情:
using (SPSite spSite = SPContext.Current.Site)
{
using (SPWeb spWeb = spSite.RootWeb)
{
SPListItem spListItem = spWeb.GetListItem
("/sites/testSite/Lists/testList/Folder/Subfolder");
}
}
如果您想知道,我正在尝试使用“Subfolder”文件夹来处理它。
问题是我第一次调用它时,得到一个COMExpeption:
无法完成此操作。
请尝试 试。
<nativehr>0x80004005</nativehr><nativestack></nativestack>
说明:未处理的异常 在执行期间发生 当前的网络请求。请查看 堆栈跟踪以获取更多信息 错误及其来源 代码。
例外详情: System.Runtime.InteropServices.COMException: 无法完成此操作。
有关于发生COMException的some reports,因为您需要使用完整的相对网站网址,因此您需要使用/Lists/testList/Folder/SubFolder
而不是/sites/testSite/Lists/...
- 我这样做。我也尝试使用绝对URL(http://sharepoint/sites/...
)。问题仍然存在:我第一次尝试获取spListItem时得到了COMException
当我尝试在Exception之后再次运行代码时,收到SPListItem就好了。此外所有后续调用都有效 - 只有第一个调用失败。
AmI做了一些初始化错误或类似的东西?
答案 0 :(得分:1)
也许尝试使用SPWeb.GetFolder()......但是这又取决于你想要对文件夹做什么。虽然您使用的是用于获取文件夹上的列表项的方法,但似乎很奇怪。
答案 1 :(得分:1)
尝试实例化列表项所在的网站 - _uiserWeb
。
我尝试了Site.RootWeb.GetListItem(item_url)
- 它在代码重新部署后第一次给了我null
,并且第二次很好。
_item = _userWeb.GetListItem(item_url)