1

行,

这似乎很愚蠢,但我想我会问,因为这里有很多专业知识可以利用,我可能会从答案中学到很多东西。

我有一个用于创建站点的服务中心面板。如果网站创建失败,我想删除该网站。除非例外是因为该 URL 上已存在另一个站点。

我目前得到以下内容,可以轻松检查包含的文本,但想要更可靠的方法。(例如,寻找异常 ID 或类似的东西。)

另一个站点已经存在于http://server:80/sites/xxxxxxxx。在尝试创建具有相同 URL 的新站点、选择新 URL 或在您最初指定的路径处创建新包含之前,请删除此站点。

4

2 回答 2

1

为什么不在尝试创建站点之前先检查站点是否存在?

于 2012-01-13T09:58:45.980 回答
1

正如 TrovB30 所说,在尝试创建之前检查它是否存在可能是最好的方法。

我假设您引用了 SPSiteCollection 对象或 SPWebApplication 对象?在那种情况下,我可能会遍历它以查看是否已经存在一个。这可能看起来很乏味,但可能比 try-catch 过程更有效:

private bool SiteExists(SPWebApplication webApp, string siteUrl)
    {            
        var sites = webApp.Sites;
        //Add slash to enable comparison
        siteUrl = "/" + siteUrl;
        foreach (SPSite site in sites)
        {
            if (site.ServerRelativeUrl.Equals(siteUrl) == true)
            {
                return true;
            }
        }
        return false;
    }
于 2012-01-13T12:20:05.860 回答