2012-01-13 90 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; 
    }