2012-01-13 86 views
1

好时,如何识别的SharePoint例外,试图创建一个新的站点

这似乎是愚蠢的,但我想我会问,因为有大量的专业知识进军这里,我可能会学到好位从答案。

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

我目前得到以下内容,可以很容易地检查包含的文本,但想要一个更坚实的方法。 (例如寻找异常ID或类似情况)

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

回答

1

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

+0

想过这个但这意味着另一个try/catch和潜在的假阳性的情况下创建SPSite对象,以检查是否存在引发例外。 – trgraglia 2012-01-13 10:24:37

+0

这真的是唯一的方法来做到这一点。您可以捕获其他异常并检查Message属性,但除此之外,无法检查唯一的异常ID。 – trgraglia 2012-01-25 10:36:14

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; 
    }