0

创建 SharePoint 2010 功能时遇到问题。我想做的是:

  1. 检查站点名称是否与站点标题相同。
  2. 如果不是,请更改名称(以及相应的 URL)以匹配标题。

我的代码如下:

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 已更改,它无法再找到该页面。

有谁知道这个的解决方法,或者即使它是可能的?

非常感谢!

4

1 回答 1

1

我会隐藏该功能并使用 PowerShell 在 UI 之外激活它。

此外,根据最佳实践规则SPDisposeCheckID_220,您不应处置 SPContext.Current.Web:

SPContext 对象由 SharePoint 框架管理,不应在您的代码中显式释放。对于由 SPContext.Site、SPContext.Current.Site、SPContext.Web 和 SPContext.Current.Web 返回的 SPSite 和 SPWeb 对象也是如此。

于 2013-10-08T17:17:50.363 回答