gpt4 book ai didi

javascript - SharePoint 2013 - 以编程方式创建网站集

转载 作者:行者123 更新时间:2023-11-30 17:58:14 26 4
gpt4 key购买 nike

随着应用程序的推出,解决方案逐渐消失。以编程方式创建网站集的最佳方式是什么?我在现场。 可以用 JavaScript 完成吗?我可以用 js 创建子站点,但是网站集呢?

我找到了一些 C# 代码来创建网站集,但我从哪里运行它?在应用程序中?

最佳答案

我已使用事件接收器 (c#) 以编程方式成功创建网站集。 Microsoft 已确认无法使用 JavaScript 创建网站集。我想我会分享我的整体解决方案,因为我没有看到从头到尾的完整文档。

  1. 我按照这些步骤为 SP2013 设置了合适的开发环境 http://msdn.microsoft.com/en-us/library/fp179923.aspx
  2. 我创建了一个新的 VS2012 空 Sharepoint 2013 项目,我选择了农场解决方案
  3. 添加网络引用
    • 右键单击服务引用
    • 添加服务引用
    • 高级按钮
    • 添加 Web 引用按钮
    • http://{SharePointServer}:{端口}/_vti_adm/Admin.asmx
    • 使用农场帐户登录
    • 将引用命名为“SPAdminService”
    • 添加引用按钮
  4. 添加事件接收器

    • 右键单击该项目
    • 添加
    • 新项目
    • 事件接收者
  5. 这是 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", "cslee@bluebunny.com", "", "");
    }
    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);
    });
    }
    }


    }
    }
  6. 因此您只希望它在某个列表添加项目时运行,因此您必须修改 Elements.xml 文件。

  7. 打开 Elements.xml,替换这行 <Receivers ListTemplateId="101"><Receivers ListUrl="http://{SharepointSite}/{targetListName}"> - 这样我们就可以仅针对该列表而不是网站上的所有列表

  8. 右键单击您的项目并部署

  9. 您应该能够创建一个新项目,然后检查您的新网站集。

我遇到的一个问题是网站不能以数字字符开头。

本文底部介绍了如何调试功能事件接收器。没有它我会死在水里:http://msdn.microsoft.com/en-us/library/ee231550.aspx

这三篇文章帮助很大:

  1. http://msdn.microsoft.com/en-us/library/websvcadmin.admin.createsite.aspx

  2. http://onceinawhilescribble.blogspot.com/2013/05/creating-simple-event-receiver-in.html

  3. http://www.sharepointpals.com/post/How-to-create-a-custom-list-level-event-receiver-in-SharePoint-2013-and-SharePoint-2010

关于javascript - SharePoint 2013 - 以编程方式创建网站集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17684752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com