2009-10-23 33 views
2

UPDATE在SharePoint網站自動化集合創建

我現在可以進行成功的UI模擬。這是我使用的代碼和查看後的問題Jay Nathan's article我已經恢復到他的代碼,所有工作都很好。

在回答評論這是我用來創建一個新的網站集代碼:

Dim newSite As SPSite = webApp.Sites.Add(_ 
    txtWebApp.Text & "/cg/" & strURL, txtName.Text, txtDesc.Text, 1033, "SITEDEF#0", _ 
    "DOMAIN\ACCOUNT", "NAME", "EMAIL", _ 
    "DOMAIN\ACCOUNT", "NAME", "EMAIL") 

,並是「SITEDEF#0」是一個完全有效的網站確定指標。

希望我已經通過使用應用程序頁面來解決此問題,該應用程序頁面可作爲網站操作菜單上的一個元素(僅適用於網站管理員)。使用模擬我可以成功地啓動這個過程。有我在another question.

原來的問題

都強調我有一個需要允許非農場管理員能夠創建一個非常具體的網站定義網站集的一些其他問題。這些人將無法訪問中央管理員,因此需要定製解決方案才能創建這些內容。我嘗試了幾種解決方案,但希望對推薦的方法達成一致。

  1. 自定義Web服務 - 我已經寫了一個自定義Web服務來執行這個任務然而,這造成了重大頭痛,即使Web服務是在一個應用程序池使用相同的身份在SharePoint應用程序池我可以運行沒有得到這個工作。在嘗試執行這個Web服務時也有形式消化問題。

  2. Web部件/應用程序頁面 - 無形式在這裏消化問題,我們可在SharePoint背景下,但我一直在使用RunWithElevatedPrivileges嘗試,但我仍然可以調用SPWebbApplication.Sites.Add()時被拒絕訪問,即使所有SPSite和SPWeb pbjects正在被升級的代碼塊中實例化。我曾嘗試在UI級別直接模仿,並且我得到一個UnhandledException,表示模擬失敗。

  3. 應用程序包裝器stsadm附近 - 我還沒有嘗試過,因爲我擔心這種方法的可行性,肯定有比這更清潔的方法嗎?

對此的一些指導將會很有用,因爲我在這方面找不到太多內容。

謝謝

回答

0

我會選擇1號。這可能是一個授權問題。你如何訪問SharePoint?與SDK或谷歌服務?

+0

所有代碼都是通過WSS 3.0 API – Charlie 2009-10-26 09:02:58

0

我會去的第2號。該代碼應該工作,也許模擬代碼是不正確的?例如,您不能像使用SPContext那樣正常使用SPContext。

此外,您正在升級到您的SharePoint網站的應用程序池的身份。此帳戶是否有足夠的權利來創建網站集? 您可以檢入管理中心>應用程序管理> Web應用程序的策略。