谷歌搜索了上述Sharepoint例外的解决方案已经过了好几个小时之后,我已经来到SO寻求帮助......
我相信我得到上述异常的原因是因为以下代码:
try
{
using (SPSite site = new SPSite(siteId, spUserToken))
{
using (SPWeb web = site.OpenWeb(webId))
{
createNewSite(web);
}
}
}
createNewSite(web)使用AllowUnsafeUpdates更改“web”的名称和URL,因此当它出来时,它已被更改。我几个月的Sharepoint开发经验表明,这是异常的原因。 “web”已不再使用,所以我可以自己轻松地取消它。这里的问题是......它没有用:
try
{
using (SPSite site = new SPSite(siteId, spUserToken))
{
SPWeb web = null;
using (web = site.OpenWeb(webId))
{
createNewSite(web);
if (web != null)
{
web = null;
}
}
}
}
我相信原始开发人员使用using声明来避免SPWeb对象泄漏。除此之外,我认为我可以打破这种模式,仅仅是为了摆脱那种可怕的例外。
所以问题是:我可以对上面的代码做些什么来潜在地修复这个异常?
感谢。
答案 0 :(得分:1)
使用名为createNewSite的方法更改现有网站是一个不好的标志 - 您也应该为此发布代码。
然而,没有必要将web设置为null - 它没有任何效果,因为它无论如何都要超出范围。
更可能的原因是您调用的自定义方法有问题或者使用的ID的有效性存在问题。