创建SharePoint 2010功能时遇到问题。我想做的是:
我的代码如下:
Private Sub ChangeSiteNameToMatchTitle()
_web = SPContext.Current.Web
If _web.Name <> _web.Title Then
_web.Name = _web.Title
_web.Update()
End If
_web.Dispose()
End Sub
这会成功更改名称,使其与网站标题完全相同,但由于网站名称(以及URL)已更改,因此会导致功能在其激活周期结束时崩溃。
该功能似乎试图在激活它的网站上重新加载ManageFeature.aspx页面,但由于URL已更改,因此无法再找到该页面。
有没有人知道这方面的解决方法,或者即使它可能?
非常感谢!
答案 0 :(得分:1)
我会隐藏功能,并使用PowerShell在UI之外激活它。
另外,根据最佳实践规则SPDisposeCheckID_220,您不应该处置SPContext.Current.Web:
SPContext对象由SharePoint框架管理,不应在代码中明确处理。对于SPContext.Site,SPContext.Current.Site,SPContext.Web和SPContext.Current.Web返回的SPSite和SPWeb对象也是如此。