Partager via


Inscription d’un service

Dernière modification : mercredi 1 septembre 2010

S’applique à : SharePoint Foundation 2010

SharePoint 2010 fournit une plateforme pour l’installation et l’administration unifiées des services dans une batterie de serveurs. L’intégration d’un service à SharePoint 2010 permet de gérer le service à l’aide d’une interface cohérente avec les autres services dans la batterie de serveurs. SharePoint Foundation 2010 fournit une API du runtime hautes performances qui permet de détecter les services et de router les demandes de service en fonction de la topologie de la batterie de serveurs. En outre, SharePoint Foundation 2010 fournit une infrastructure complète pour l’hébergement de services Web dans les services Internet (IIS), notamment pour le déploiement d’un service Web sur plusieurs ordinateurs de la batterie de serveurs, l’équilibrage de la charge des demandes en provenance des serveurs Web frontaux et la fourniture d’une banque de propriétés pour les paramètres des services.

À propos des objets de la base de données de configuration

Les services doivent être inscrits dans la base de données de configuration SharePoint afin qu’ils puissent être détectés et gérés. Tous les objets stockés dans la base de données de configuration SharePoint sont des objets Microsoft .NET Framework qui dérivent leurs classes de l’objet Microsoft.SharePoint.Administration.SPPersistedObject. Chaque objet SPPersistedObject présente les exigences suivantes :

  • une valeur System.Runtime.InteropServices.GuidAttribute unique, qui permet d’identifier votre type dans la base de données de configuration ;

  • un constructeur par défaut public, destiné uniquement à une utilisation interne par le sérialiseur d’objet de la base de données de configuration.

L’exemple suivant illustre le constructeur par défaut public.

using System.Runtime.InteropServices;

[Guid("213A8448-2B39-4B37-A39C-1B444600000")]
public class MyObject : SPPersistedObject
{
        /// <summary>
        /// For internal use only.
        /// </summary>
        public MyObject()
        {
        }
}
Imports System.Runtime.InteropServices

<Guid("213A8448-2B39-4B37-A39C-1B444600000")>
Public Class MyObject
    Inherits SPPersistedObject
    ''' <summary>
    ''' For internal use only.
    ''' </summary>
    Public Sub New()
    End Sub
End Class

Notes

Dans un souci de concision, le GUID et le constructeur public par défaut ne sont pas illustrés dans le reste de l’exemple de code dans cette rubrique.

Inscription d’un service auprès de SharePoint Foundation

L’exemple suivant montre comment inscrire un service pouvant être démarré et arrêté sur plusieurs serveurs dans une batterie de serveurs SharePoint 2010. Vous n’avez pas besoin d’implémenter le service sur la plateforme SharePoint. Par exemple, les classes de service SharePoint permettent de rendre un service métier externe visible dans le site Web Administration centrale.

Étape 1 : créer la classe de service

Dérivez une classe de SPService. Cette classe permet d’inscrire le service dans la batterie de serveurs SharePoint 2010 et peut éventuellement contenir des paramètres qui s’appliquent à chaque instance du service dans la batterie de serveurs.

public sealed class MyService : SPService
{
    public MyService(
        SPFarm farm)
        : base(String.Empty, farm)
    {
    }
}
Public NotInheritable Class MyService
    Inherits SPService
    Public Sub New(ByVal farm As SPFarm)
        MyBase.New(String.Empty, farm)
    End Sub
End Class

Étape 2 : créer la classe d’instance de service

Dérivez une classe de SPServiceInstance. Cette classe permet d’inscrire les ordinateurs sur lesquels le service est installé dans la batterie de serveurs. En outre, elle fournit les connexions de gestion qu’un administrateur de batterie doit posséder pour démarrer et arrêter le service à partir du site Web Administration centrale.

Substituez les méthodes Provision et Unprovision pour exécuter du code permettant de démarrer et d’arrêter le service sur l’ordinateur local. L’Infrastructure des applications de service appelle les méthodes sur le serveur approprié.

public sealed class MyServiceInstance : SPServiceInstance
{
    public MyServiceInstance(
        SPServer server,
        SPService service)
        : base(String.Empty, server, service)
    {
    }

    public override Provision()
    {
        // Start the service on the local computer.
    }

    public override Unprovision()
    {
        // Stop the service on the local computer.
    }
}
Public NotInheritable Class MyServiceInstance
    Inherits SPServiceInstance
    Public Sub New(ByVal server As SPServer, ByVal service As SPService)
        MyBase.New(String.Empty, server, service)
    End Sub

    Public Overrides Sub Provision()
        ' Start the service on the local computer.
    End Sub

    Public Overrides Sub Unprovision()
        ' Stop the service on the local computer.
    End Sub
End Class

Dans l’exemple, le nom de l’instance de service est String.Empty, ce qui est approprié pour l’instance de service par défaut. Des instances de service nommées (autres que l’instance par défaut) sont appropriées lorsque le service prend en charge plusieurs instances physiques sur un même ordinateur. Chaque instance, à l’exception de l’instance par défaut, possède un nom et peut être démarrée et arrêtée indépendamment. Dans ce cas, un constructeur supplémentaire est requis, comme illustré dans l’exemple suivant.

internal MyServiceInstance(
    string name,
    SPServer server,
    SPService service)
    : base(name, server, service)
{
}
Friend Sub New(ByVal name As String, ByVal server As SPServer, ByVal service As SPService)
    MyBase.New(name, server, service)
End Sub

Étape 3 : installer le service

Créez une Fonctionnalité SharePoint Foundation qui installera les objets de service et d’instance de service dans la base de données de configuration pendant la phase de configuration post-installation. Pour plus d’informations, voir Empaquetage et déploiement.

Voir aussi

Concepts

Mise en service des applications de service

Autres ressources

Empaquetage et déploiement