我有以下代码:
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:
这是 moss 2007,它是一个连接到共享点站点的 Web 应用程序 (asp.net),两个列都存在..
我发现了另一件事..如果我在 item.Update() 中放置一个断点,然后按 F10,它就可以工作.. 项目已更新.. 没有抛出异常......但在正常执行中,它总是失败..