Freigeben über


Registrieren eines Diensts

Letzte Änderung: Mittwoch, 1. September 2010

Gilt für: SharePoint Foundation 2010

SharePoint 2010 stellt eine Plattform für eine einheitliche Installation und Verwaltung von Diensten in einer Serverfarm bereit. Durch Integrieren eines Diensts in SharePoint 2010 wird sichergestellt, dass der Dienst über eine Schnittstelle verwaltet werden kann, die mit anderen Diensten in der Farm konsistent ist. SharePoint Foundation 2010 bietet eine hochleistungsfähige Laufzeit-API, die verwendet werden kann, um Dienste zu ermitteln und Dienstanforderungen basierend auf der Serverfarmtopologie weiterzuleiten. Darüber hinaus bietet SharePoint Foundation 2010 ein vollständiges Framework für das Hosten von Webdiensten in IIS (Internetinformationsdienste), einschließlich der Bereitstellung des Webdiensts auf mehreren Computern in der Serverfarm, eines Lastenausgleichs für Anforderungen von Front-End-Webservern und der Bereitstellung eines Eigenschaftenspeichers für Diensteinstellungen.

Informationen zu Konfigurationsdatenbank-Objekten

Dienste müssen in der SharePoint-Konfigurationsdatenbank registriert werden, damit sie ermittelt und verwaltet werden können. Alle Objekte, die in der SharePoint-Konfigurationsdatenbank gespeichert sind, sind Microsoft .NET Framework-Objekte, deren Klassen aus Microsoft.SharePoint.Administration.SPPersistedObject abgeleitet sind. Für jedes SPPersistedObject-Objekt gelten folgende Anforderungen:

  • Ein eindeutiger System.Runtime.InteropServices.GuidAttribute-Wert, der zum Identifizieren des Typs in der Konfigurationsdatenbank verwendet wird.

  • Ein öffentlicher Standardkonstruktor, vorgesehen nur für die interne Verwendung durch das Serialisierungsprogramm für Objekte der Konfigurationsdatenbank.

Das folgende Beispiel zeigt den öffentlichen Standardkonstruktor.

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
HinweisHinweis

Der Kürze halber werden die GUID und der standardmäßige öffentliche Konstruktor im verbleibenden Beispielcode in diesem Thema nicht angezeigt.

Registrieren eines Diensts mit SharePoint Foundation

Im folgenden Beispiel wird veranschaulicht, wie ein Dienst registriert wird, der auf mehreren Servern in einer SharePoint 2010-Serverfarm gestartet und beendet werden kann. Sie müssen den Dienst nicht auf der SharePoint-Plattform implementieren. Beispielsweise können die SharePoint-Dienstklassen verwendet werden, um einen externen Branchendienst auf der Website für die Zentraladministration sichtbar zu machen.

Schritt 1: Erstellen der Dienstklasse

Leiten Sie eine Klasse von SPService ab. Diese Klasse wird verwendet, um den Dienst in der SharePoint 2010-Serverfarm zu registrieren, und sie kann optional Einstellungen für jede Instanz des Diensts in der Farm enthalten.

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

Schritt 2: Erstellen der Dienstinstanzklasse

Leiten Sie eine Klasse von SPServiceInstance ab. Diese Klasse wird verwendet, um die Computer zu registrieren, auf denen der Dienst in der Serverfarm installiert ist. Sie bietet außerdem die Verwaltungsmöglichkeiten, die ein Farmadministrator zum Starten und Beenden des Diensts auf der Website für die Zentraladministration benötigt.

Überschreiben Sie die Methoden Provision und Unprovision zum Ausführen von Code zum Starten und Beenden des Diensts auf dem lokalen Computer. Die Methoden werden vom Service Application Framework auf dem entsprechenden Server aufgerufen.

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

Im Beispiel lautet der Name der Dienstinstanz String.Empty, was für die Standardinstanz des Diensts geeignet ist. Benannte (nicht standardmäßige) Dienstinstanzen sind geeignet, wenn der Dienst auf einem einzelnen Computer mehrere physische Instanzen unterstützt. Jede Instanz außer der Standardinstanz verfügt über einen Namen und kann unabhängig von anderen gestartet und beendet werden. Ein weiterer Konstruktor ist in diesem Fall erforderlich, wie das folgende Beispiel zeigt.

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

Schritt 3: Installieren des Diensts

Erstellen Sie ein SharePoint Foundation-Feature, das die Dienst- und Dienstinstanzobjekte in der Konfigurationsdatenbank während der Konfigurationsphase nach der Installation installiert. Weitere Informationen finden Sie unter Verpackung und Bereitstellung.

Siehe auch

Konzepte

Bereitstellen von Dienstanwendungen

Weitere Ressourcen

Verpackung und Bereitstellung