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


Класс SPService

Представляет служба уровня фермы.

Иерархия наследования

System.Object
  Microsoft.SharePoint.Administration.SPAutoSerializingObject
    Microsoft.SharePoint.Administration.SPPersistedObject
      Microsoft.SharePoint.Administration.SPPersistedUpgradableObject
        Microsoft.SharePoint.Administration.SPService
          

Пространство имен:  Microsoft.SharePoint.Administration
Сборка:  Microsoft.SharePoint (в Microsoft.SharePoint.dll)

Синтаксис

'Декларация
<GuidAttribute("DACA2A15-B9B5-43da-BEA3-6B75FBE3A883")> _
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
Public Class SPService _
    Inherits SPPersistedUpgradableObject
'Применение
Dim instance As SPService
[GuidAttribute("DACA2A15-B9B5-43da-BEA3-6B75FBE3A883")]
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
public class SPService : SPPersistedUpgradableObject

Замечания

Для возврата родительская служба экземпляра службы, используйте свойство Service класса SPServiceInstance . Используйте свойство Services класса SPFarm для возврата объекта SPServiceCollection , представляющий коллекцию служб на ферме серверов. Используйте индексатор для возврата одной службы из коллекции, используя код GUID, который определяет службу. Например если коллекции присваивается переменной с именем myServices, используйтеindexmyServices[] в C# илиindexmyServices() в Visual Basic, где index — это идентификатор GUID, который определяет службу.Чтобы получить одной службы из коллекции по имени, используйте метод GetValue . Например если коллекции присваивается переменной с именем myServices, используйтеnamemyServices.GetValue<ServiceType>() в C# или myServices.GetValue(ServiceType)(name) в Visual Basic, где ServiceType — тип службы и name — имя, которое определяет службу.

Примеры

В следующем примере выполняется итерация по журнал заданий таймера для каждой службы в ферме и повторно выполняет все задания таймера, которые не были выполнены за последний час.

Dim oneHourAgo As DateTime = DateTime.UtcNow.AddHours(-1)
Dim rerunJobIds As List(Of Guid) = New List(Of Guid)()
For Each service As SPService In SPFarm.Local.Services
    For Each entry In service.JobHistoryEntries
        ' stop if the entry didn't occur in the last hour
        If entry.EndTime < oneHourAgo Then
            Exit For
        End If

        If entry.Status = SPRunningJobStatus.Failed And _
           Not rerunJobIds.Contains(entry.JobDefinitionId) Then
            Dim job As SPJobDefinition = SPFarm.Local.GetObject( _
                entry.JobDefinitionId)
            If Not job Is Nothing Then
                job.RunNow()

                ' don't rerun the same job twice
                rerunJobIds.Add(entry.JobDefinitionId)
            End If
        End If
    Next
Next
DateTime oneHourAgo = DateTime.UtcNow.AddHours(-1);
List<Guid> rerunJobIds = new List<Guid>();
foreach (SPService service in SPFarm.Local.Services)
{
    foreach (SPJobHistory entry in service.JobHistoryEntries)
    {
        // stop if the entry didn't occur in the last hour
        if (entry.EndTime < oneHourAgo)
            break;

        if (entry.Status == SPRunningJobStatus.Failed &&
            !rerunJobIds.Contains(entry.JobDefinitionId))
        {
            SPJobDefinition job = SPFarm.Local.GetObject(
                entry.JobDefinitionId) as SPJobDefinition;
            if (job != null)
            {
                job.RunNow();

                // don't rerun the same job twice.
                rerunJobIds.Add(entry.JobDefinitionId);
            }
        }
    }
}

Потокобезопасность

Любые общедоступные элементы static (Shared в Visual Basic) этого типа являются потокобезопасными. Не гарантируется, что любые элементы экземпляров потокобезопасны.

См. также

Справочные материалы

Элементы SPService

Пространство имен Microsoft.SharePoint.Administration

Иерархия наследования

System.Object
  Microsoft.SharePoint.Administration.SPAutoSerializingObject
    Microsoft.SharePoint.Administration.SPPersistedObject
      Microsoft.SharePoint.Administration.SPPersistedUpgradableObject
        Microsoft.SharePoint.Administration.SPService
          Microsoft.SharePoint.Administration.SPDiagnosticsServiceBase
          Microsoft.SharePoint.Administration.SPIisWebService
          Microsoft.SharePoint.Administration.SPIncomingEmailService
          Microsoft.SharePoint.Administration.SPOutboundMailService
          Microsoft.SharePoint.Administration.SPRequestManagementService
          Microsoft.SharePoint.Administration.SPUsageService
          Microsoft.SharePoint.Administration.SPWebService
          Microsoft.SharePoint.Administration.SPWindowsService