Поделиться через


Регистрация службы

Дата последнего изменения: 1 сентября 2010 г.

Применимо к: SharePoint Foundation 2010

SharePoint 2010 предоставляет платформу для унифицированной установки и администрирования служб в ферме серверов. Интеграция службы с SharePoint 2010 позволяет управлять службой с помощью интерфейса, который используется и для других служб в ферме. SharePoint Foundation 2010 предоставляет эффективную среду выполнения API, которую можно использовать для обнаружения служб и маршрутизации служебных запросов на основе топологии фермы серверов. Кроме того, SharePoint Foundation 2010 предоставляет полнофункциональную платформу для размещения веб-служб в IIS, включая развертывание веб-службы на нескольких компьютерах в ферме серверов, балансировку нагрузки, связанную с запросами от интерфейсных веб-серверов, и хранилище для параметров службы.

Общие сведения об объектах базы данных конфигурации

Службы требуется регистрировать в базе данных конфигурации SharePoint, чтобы можно было обнаруживать их и управлять ими. Все объекты, которые хранятся в базе данных конфигурации SharePoint — это объекты Microsoft .NET Framework, классы которых образованы от Microsoft.SharePoint.Administration.SPPersistedObject. К каждому объекту SPPersistedObject применяются следующие требования.

  • Уникальное значение System.Runtime.InteropServices.GuidAttribute, которое используется для определения типа в базе данных конфигурации.

  • Открытый конструктор по умолчанию, предназначенный для использования только сериализатором объектов базы данных конфигурации.

В следующем примере показан открытый конструктор по умолчанию.

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
ПримечаниеПримечание

Для краткости идентификатор GUID и открытый конструктор по умолчанию не показаны в коде примера.

Регистрация службы с использованием SharePoint Foundation

В следующем примере показано, как зарегистрировать службу, которую можно запускать и останавливать на нескольких серверах в ферме SharePoint 2010. Необязательно реализовать службу на платформе SharePoint. Например, классы службы SharePoint можно использовать, чтобы сделать внешнюю бизнес-службу видимой на сайте центра администрирования.

Шаг 1. Создание класса службы

Создайте класс, производный от SPService. Этот класс используется для регистрации службы в ферме серверов SharePoint 2010 и при необходимости может содержать параметры, которые применяются к каждому экземпляру службы в ферме.

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

Шаг 2. Создание экземпляра класса службы

Создайте класс, производный от SPServiceInstance. Этот класс используется для регистрации компьютеров, на которые устанавливается служба в ферме серверов. Он также предоставляет обработчики, необходимые администратору для запуска и остановки службы на сайте центра администрирования.

Переопределите методы Provision и Unprovision для выполнения кода, который запускает и останавливает службу на локальном компьютере. приложений-служб вызывает эти методы на соответствующем сервере.

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

В примере используется имя экземпляра службы String.Empty, которое является экземпляром по умолчанию. Именованные (нестандартные) экземпляры службы применяются, если служба поддерживает несколько физических экземпляров на одном компьютере. У каждого экземпляра, кроме экземпляра по умолчанию, есть имя и его можно запускать и останавливать независимо от других. В этом случае требуется дополнительный конструктор, как показано в следующем примере.

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

Шаг 3. Установка службы

Создайте компонент SharePoint Foundation, который устанавливает службу и объекты экземпляра службы в базе данных конфигурации во время этапа настройки после установки. Дополнительные сведения см. в статье Упаковка и развертывание.

См. также

Концепции

Подготовка приложений-служб

Другие ресурсы

Упаковка и развертывание