Procédure : sauvegarder et restaurer une seule collection de sites par programmation

Windows SharePoint Services 3

Cette rubrique explique comment sauvegarder et restaurer des collections de sites individuelles par programmation.

Pour sauvegarder ou restaurer une collection de sites

  1. Ajoutez à votre projet Visual Studio une référence à Windows SharePoint Services.

  2. Ajoutez des instructions using pour Microsoft.SharePoint et Microsoft.SharePoint.Administration.

  3. Ajoutez les lignes suivantes pour obtenir une référence à la batterie de serveurs et à sa collection de services.

    SPFarm myFarm = SPFarm.Local;
    SPServiceCollection myServices = myFarm.Services;
    
  4. Récupérez une référence au service Web qui publie l'application Web hébergeant votre collection de sites à l'aide du Guid du service, qui est la valeur de sa propriété Id.

    Guid serviceID = new Guid("21d91b29-5c5b-4893-9264-4e9c758618b4");
    SPWebService webPubService = (SPWebService)myServices[serviceID];
    

    Si vous ne connaissez pas le Id de l'application qui publie le service Web, vous pouvez parcourir tous les services et reporter leur Name, TypeName et Id. Exemple :

    foreach (SPService service in myServices)
    {
        if (service is SPWebService)
        {
        Console.WriteLine("Web service name:" + webService.Name);
        Console.WriteLine("Web service type:" + webService.TypeName);
        Console.WriteLine("Web service ID:" + webService.Id);
        Console.WriteLine();
        Console.Readline();
        }
    }
    
  5. Récupérez une référence à l'application Web qui héberge votre collection de sites. Si vous connaissez son URL, vous pouvez obtenir une référence avec la méthode Lookup statique. Vous pouvez aussi utiliser le Guid de l'application, qui est la valeur de sa propriété Id. Le code suivant présente la deuxième méthode.

    SPWebApplicationCollection myApps = webPubService.WebApplications;
    Guid appID = new Guid("10ea4e6f-ae37-4909-b04f-f516c066bc37");
    SPWebApplication myApp = myApps[appID];
    

    Si vous ne connaissez pas le Id de l'application Web qui héberge votre collection de sites, vous pouvez parcourir toutes les applications Web et reporter leur Name, TypeName et Id. Exemple :

    foreach (SPWebApplication app in webApps)
    {
        Console.WriteLine("Web application name:" + app.Name);
        Console.WriteLine("Web application type:" + app.TypeName);
        Console.WriteLine("Web application ID:" + app.Id);
        Console.WriteLine();
        Console.Readline();
    }
    
  6. Récupérez une référence à la collection de sites de l'application Web.

    SPSiteCollection mySiteCols = myApp.Sites;
    
  7. Pour sauvegarder une collection de sites, appelez la méthode Backup. Comme paramètres, utilisez :

    • L'URL complète de la collection de sites, c'est-à-dire l'URL complète du son site Web de niveau supérieur.

    • Le chemin complet et le nom du fichier qui contiendra le contenu compressé de la collection de sites.

    • True, si l'opération doit remplacer un fichier de sauvegarde existant de même nom, sinon false.

    mySiteCols.Backup(@"http://Server/sites/MySiteCollection", @"\\OtherServer\WSSBackups\SiteCollections\BackupOfMySiteCollection", true);
    
  8. Pour restaurer une collection de sites, appelez la méthode Restore. Elle utilise les mêmes paramètres que la méthode Backup. Le paramètre Boolean indique si la collection de sites doit être remplacée si elle existe déjà à l'URL spécifiée.

    mySiteCols.Restore(@"http://Server/sites/MySiteCollection", @"\\OtherServer\WSSBackups\SiteCollections\BackupOfMySiteCollection", true);
    

Exemple

L'exemple suivant présente un moyen simple de sauvegarder ou restaurer par le biais de la programmation une collection de sites. Vous devez remplacer toutes les valeurs Guid par celles qui correspondent à votre déploiement et remplacer les valeurs des espaces réservés des méthodes Backup et Restore par les véritables URL et chemins de votre déploiement.

// Get a reference to the Web application publishing
// Web service.
SPFarm myFarm = SPFarm.Local;
SPServiceCollection myServices = myFarm.Services;
Guid serviceID = new Guid("21d91b29-5c5b-4893-9264-4e9c758618b4");
SPWebService webPubService = (SPWebService)myServices[serviceID];

// Get a reference to the Web application that hosts the 
// site collection.
SPWebApplicationCollection myApps = webPubService.WebApplications;
Guid appID = new Guid("10ea4e6f-ae37-4909-b04f-f516c066bc37");
SPWebApplication myApp = myApps[appID];

// As alternative to the preceding three lines, you can use
// the following when you know the URL of the Web application:
//     SPWebApplication myApp = SPWebApplication.Lookup(url_of_Web_app)

// Get a reference to the Web application's collection of 
// site collections. 
SPSiteCollection mySiteCols = myApp.Sites;

// Back up a specified site collection. 
mySiteCols.Backup(@"http://Server/sites/MySiteCollection", @"\\OtherServer\WSSBackups\SiteCollections\BackupOfMySiteCollection", true);

// Restoring the site collection is identical to the preceding
// code except that the "Restore" is used in place of "Backup".
//
// mySiteCols.Restore(@"http://Server/sites/MySiteCollection", @"\\OtherServer\WSSBackups\SiteCollections\BackupOfMySiteCollection", true);

La classe SPSite n'implémente pas IBackupRestore et les méthodes Backup et Restore n'utilisent pas les fonctionnalités de l'espace de noms Microsoft.SharePoint.Administration.Backup. Cela signifie que les enregistrements des sauvegardes et restaurations des collections de sites ne sont pas conservés dans un fichier d'historique (spbrtoc.xml) dans le répertoire de la sauvegarde. De même, les données de sauvegarde et de restauration ne sont pas stockées dans des fichiers spbackup.xml ou sprestore.xml, et les opérations sur les collections de sites ne sont pas consignées non plus dans des fichiers spbackup.log ou sprestore.log.

Si vous souhaitez effectuer un type de journalisation des sauvegardes et restaurations des opérations sur les collections de sites, vous devez programmer votre propre système. L'écriture dans les fichiers spbrtoc.xml,, spbackup.xml, sprestore.xml, spbackup.log et sprestore.log créés par le système n'est pas prise en charge dans Windows SharePoint Services 3.0. Il n'est pas possible non plus de les déplacer, les supprimer ou les renommer. Toutefois, vous pouvez créer des fichiers qui fusionnent les données des fichiers créés par le système avec les données de vos sauvegardes et restaurations de collections de sites.

Voir aussi

Afficher: