使用功能更改SharePoint站点名称

时间:2013-10-08 15:51:20

标签: asp.net sharepoint sharepoint-2010

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

  1. 检查网站名称是否与网站标题相同。
  2. 如果不是,请更改名称(以及URL)以匹配标题。
  3. 我的代码如下:

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

    有没有人知道这方面的解决方法,或者即使它可能?

    非常感谢!

1 个答案:

答案 0 :(得分:1)

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

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

  

SPContext对象由SharePoint框架管理,不应在代码中明确处理。对于SPContext.Site,SPContext.Current.Site,SPContext.Web和SPContext.Current.Web返回的SPSite和SPWeb对象也是如此。