Compartir a través de


Procedimiento para implementar contenido entre servidores

Última modificación: jueves, 21 de enero de 2010

Hace referencia a: SharePoint Server 2010

Este ejemplo de código muestra cómo usar el modelo de objetos para crear rutas de acceso directo y trabajos que implementan contenido entre colecciones de sitios. Este código asume que las colecciones de sitios de origen y destino están en la misma granja de servidores. Sin embargo, las rutas de acceso pueden configurarse entre diferentes granjas de servidores. Las tareas que puede realizar este código también pueden realizarse a través de la interfaz de usuario de Administración central de SharePoint.

Las rutas de acceso conectan colecciones de sitios de origen y destino; los trabajos controlan qué contenido y cuándo se copia. Microsoft SharePoint Server 2010 solamente admite la implementación de origen en destino y no admite la implementación de varios orígenes en un destino ni la implementación de contenido del destino de nuevo en el origen. La implementación es incremental de manera predeterminada y la configura un administrador central.

El siguiente ejemplo demuestra cómo especificar la configuración de rutas de acceso y trabajos, configurar la implementación de contenido para esta granja de servidores y crear una ruta de acceso a la implementación así como un trabajo asociado a la ruta de acceso que creó.

Ejemplo

using System;
using System.Collections.Generic;
using System.Text;

using Microsoft.SharePoint.Publishing.Administration;

namespace DeploymentAPISample
{
    // In this sample, we assume the following:
    //   Content is being deployed from a source site collection to 
    //   a destination site collection within the same farm.
    //   The SharePoint Central Admininstration Web application is
    //   accessible through port 8080.
    //   The source site collection is the root site collection on
    //   port 80.
    //   The destination site collection is on a managed path on 
    //   port 81.
    
    class Program
    {
        static void Main( string[] args )
        {
            DeploymentExample example = new DeploymentExample();
            example.Invoke();
        }
    }

    class DeploymentExample
    {
        public void Invoke()
        {

            // Path settings
            string pathName = "My Deployment Path";
            Uri sourceServerUri = new Uri( "https://server" );
            string sourceSiteCollection = "/";
            Uri destinationAdminUri = new Uri( "https://server:8080" );
            Uri destinationServerUri = new Uri( "https://server:81" );
            string destinationSiteCollection = "/sites/deploymentdestination";

            // Job settings
            string jobName = "My Deployment Job";

            ContentDeploymentPath path = null;
            ContentDeploymentJob job = null;

            try
            {
                // Configure Content Deployment for this farm.
                // Note: If you are deploying between farms, 
                // the DESTINATION farm must be configured 
                // to accept incoming deployment jobs.
                ContentDeploymentConfiguration config = ContentDeploymentConfiguration.GetInstance();
                config.AcceptIncomingJobs = true;
                config.RequiresSecureConnection = false; // NOTE: This is the simplest configuration, but is not the recommended secure setting
                config.Update();

                // Create a deployment path.
                ContentDeploymentPathCollection allPaths = ContentDeploymentPath.GetAllPaths();
                path = allPaths.Add();

                path.Name = pathName;
                path.SourceServerUri = sourceServerUri;
                path.SourceSiteCollection = sourceSiteCollection;
                path.DestinationAdminServerUri = destinationAdminUri;
                path.DestinationServerUri = destinationServerUri;
                path.DestinationSiteCollection = destinationSiteCollection;
                path.Update();

                // Create a job associated with the path you created.
                job = ContentDeploymentJob.GetAllJobs().Add();
                job.JobType = ContentDeploymentJobType.ServerToServer;
                job.Name = jobName;
                job.Path = path;
                job.Update();
                job.Run();
            }
            catch ( Exception ex )
            {
                Console.Error.WriteLine( ex.StackTrace );
                throw;
            }
            finally
            {
                // Delete the job that was created.
                if ( job != null )
                {
                    job.Delete();
                }
                // Delete the path that was created.
                if ( path != null )
                {
                    path.Delete();
                }
            }
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Text

Imports Microsoft.SharePoint.Publishing.Administration

Namespace DeploymentAPISample
    ' In this sample, we assume the following:
    '   Content is being deployed from a source site collection to 
    '   a destination site collection within the same farm.
    '   The SharePoint Central Admininstration Web application is
    '   accessible through port 8080.
    '   The source site collection is the root site collection on
    '   port 80.
    '   The destination site collection is on a managed path on 
    '   port 81.

    Friend Class Program
        Shared Sub Main(ByVal args() As String)
            Dim example As New DeploymentExample()
            example.Invoke()
        End Sub
    End Class

    Friend Class DeploymentExample
        Public Sub Invoke()

            ' Path settings
            Dim pathName As String = "My Deployment Path"
            Dim sourceServerUri As New Uri("https://server")
            Dim sourceSiteCollection As String = "/"
            Dim destinationAdminUri As New Uri("https://server:8080")
            Dim destinationServerUri As New Uri("https://server:81")
            Dim destinationSiteCollection As String = "/sites/deploymentdestination"

            ' Job settings
            Dim jobName As String = "My Deployment Job"

            Dim path As ContentDeploymentPath = Nothing
            Dim job As ContentDeploymentJob = Nothing

            Try
                ' Configure Content Deployment for this farm.
                ' Note: If you are deploying between farms, 
                ' the DESTINATION farm must be configured 
                ' to accept incoming deployment jobs.
                Dim config As ContentDeploymentConfiguration = ContentDeploymentConfiguration.GetInstance()
                config.AcceptIncomingJobs = True
                config.RequiresSecureConnection = False ' NOTE: This is the simplest configuration, but is not the recommended secure setting
                config.Update()

                ' Create a deployment path.
                Dim allPaths As ContentDeploymentPathCollection = ContentDeploymentPath.GetAllPaths()
                path = allPaths.Add()

                path.Name = pathName
                path.SourceServerUri = sourceServerUri
                path.SourceSiteCollection = sourceSiteCollection
                path.DestinationAdminServerUri = destinationAdminUri
                path.DestinationServerUri = destinationServerUri
                path.DestinationSiteCollection = destinationSiteCollection
                path.Update()

                ' Create a job associated with the path you created.
                job = ContentDeploymentJob.GetAllJobs().Add()
                job.JobType = ContentDeploymentJobType.ServerToServer
                job.Name = jobName
                job.Path = path
                job.Update()
                job.Run()
            Catch ex As Exception
                Console.Error.WriteLine(ex.StackTrace)
                Throw
            Finally
                ' Delete the job that was created.
                If job IsNot Nothing Then
                    job.Delete()
                End If
                ' Delete the path that was created.
                If path IsNot Nothing Then
                    path.Delete()
                End If
            End Try
        End Sub
    End Class
End Namespace

Vea también

Tareas

Procedimiento para personalizar la implementación de escenarios desconectados

Conceptos

Implementación de contenido entre servidores