隨着應用程序的推出和解決方案的消失。以編程方式創建網站集的最佳方式是什麼?我是內部部署的。 可以用JavaScript來完成嗎?我可以使用js創建子站點,但Site Collections又如何?SharePoint 2013 - 以編程方式創建網站集
我發現了一些c#代碼來創建一個網站集,但我從哪裏運行它?在應用程序中?
隨着應用程序的推出和解決方案的消失。以編程方式創建網站集的最佳方式是什麼?我是內部部署的。 可以用JavaScript來完成嗎?我可以使用js創建子站點,但Site Collections又如何?SharePoint 2013 - 以編程方式創建網站集
我發現了一些c#代碼來創建一個網站集,但我從哪裏運行它?在應用程序中?
我已經使用事件接收器(c#)以編程方式成功創建了網站集。微軟已經證實,用JavaScript創建網站集是不可能的。我以爲我會分享我的整體解決方案,因爲我從頭到尾沒有看到完整的文檔。
添加事件接收器
下面是eventreceiver.cs文件的代碼:
using System;
using System.Security.Permissions;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.Workflow;
namespace SharePointProject5.EventReceiver1
{
/// <summary>
/// List Item Events
/// </summary>
public class EventReceiver1 : SPItemEventReceiver
{
/// <summary>
/// An item is being added.
/// </summary>
public override void ItemAdding(SPItemEventProperties properties)
{
base.ItemAdding(properties);
//create admin service reference
SPAdminService.Admin admService = new SPAdminService.Admin();
//grant proper admin credentials to admin service
admService.Credentials = new System.Net.NetworkCredential("Farmaccount", "Password", "Domain");
try
{
//specify new site collection path
String SitePath = "http://twv101sp13/pm/new2013";
//setup properties to create the site, see reference below for more info
admService.CreateSite(SitePath, "new site", "description", 1033, "STS#1", "bluebunny\\sp13admin", "System Account", "[email protected]", "", "");
}
catch (System.Web.Services.Protocols.SoapException ex)
{
//I added this section so any errors would be logged in the server application log
SPSecurity.RunWithElevatedPrivileges(
delegate()
{
System.Diagnostics.EventLog.WriteEntry("Application", "Message:\n" + ex.MRessage + "\nDetail:\n" +
ex.Detail.InnerText +
"\nStackTrace:\n" + ex.StackTrace);
});
}
}
}
}
所以,你只希望這在一定名單增加了運行一個項目,所以你必須修改Elements.xml文件。
打開的Elements.xml,與<Receivers ListUrl="http://{SharepointSite}/{targetListName}">
替換該行<Receivers ListTemplateId="101">
- 這是這樣,我們也可以僅鎖定列表,而不是在該網站的所有列表
右鍵單擊您的項目和部署
您應該可以創建一個新項目,然後檢查您的新網站集。
我遇到的一個問題是網站無法以數字字符開頭。
在這篇文章的底部,它講述瞭如何調試功能事件接收器。如果沒有,我會在水中已經死了:http://msdn.microsoft.com/en-us/library/ee231550.aspx
這三篇文章幫助了很多:
我不知道如何在Javascript中執行此操作,但在任何可以使用提升特權運行C#代碼的地方,只需調用SPSite.CreateSelfServiceSite的任何重載即可。 – Renan