Sharepoint服务将子站点从专用站点复制到另一个站点

时间:2011-03-15 03:37:56

标签: c# sharepoint-2007 service sharepoint-api

我有这两个共享点Web应用程序驻留在具有不同网站集和内容的同一服务器上。我想要做的是开发一个只安排在特定服务器日期和时间运行的服务。

第一个Web应用程序是内部站点,只允许内部用户查看该站点。虽然第二个Web应用程序是公共站点,但任何人都可以查看该站点。

现在我想在以下标准上对两个Web应用程序进行同步:

1.) Retrieve information from internal site
-Group name
-Group description
-Group owner
-Group owner email
-Group url
-Discussion forum url

2.) Copy everything to the external site (public site) all the retrieved data that is 
    not found  in the external site
---------------------------------------------------
Example:
http://MyInternalSite.com with subsites 
Subsites:
    -AGroup
    -BGroup 
    -CGroup

And I have this external sharepoint site
http://MyExternalSite.com with subsites 
Subsites:
    -AGroup 
    -BGroup

请注意,除了CGroup之外,MyInternalSite.com和MyExternalSite中都包含所有子网站。我打算同步这两个网站。

让我们举个例如晚上10点,我将复制在PrivateSite中找到的所有子网站,这些子网站在PublicSite中找不到。所以基本上在今晚10点,1个子网站将被复制到PublicSite,即CGroup。

My questions:

1.) Is there some kind of a service that would work or act for this purpose, 
    like maybe a sharepoint-api service?

2.) What are the possible things that I need to consider before I do this?

谢谢! :)

2 个答案:

答案 0 :(得分:4)

1。)没有服务可以自动为您执行此操作,但Sharepoint API是您需要的路线;直接在代码级别访问,而不是通过Web服务访问。

2。)您需要考虑您的私人和公共网站是否在同一个物理盒子上。如果他们在单独的盒子上,事情会稍微复杂一些。

正如Furqan所建议的那样,您需要考虑权限,以及SPSite和Web详细信息。

另一个重要的考虑因素是你不能简单地“复制”SPSite和SPWeb项目的内容等,因为这会导致各种地狱的GUID等等,所以你的方法应该是创建新的SPSites和webs 基于您从源(私有)站点以编程方式收集的信息。

祝你好运!

答案 1 :(得分:1)

  1. 在12个HIVE文件夹中,_vti_bin文件夹中包含SPSite内部使用的所有服务,希望您可以在那里找到此类服务,但您需要自己进行调查。

  2. 你可以使用sharepoint API和恕我直言这样做,这样做会更好,我看到的唯一问题是在创建的内容中授予的权限,你需要以编程方式设置所有权限。