SPService class
Representa um serviço de toda a farm.
System.Object
Microsoft.SharePoint.Administration.SPAutoSerializingObject
Microsoft.SharePoint.Administration.SPPersistedObject
Microsoft.SharePoint.Administration.SPPersistedUpgradableObject
Microsoft.SharePoint.Administration.SPService
Namespace: Microsoft.SharePoint.Administration
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
'Declaração
<GuidAttribute("DACA2A15-B9B5-43da-BEA3-6B75FBE3A883")> _
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
Public Class SPService _
Inherits SPPersistedUpgradableObject
'Uso
Dim instance As SPService
[GuidAttribute("DACA2A15-B9B5-43da-BEA3-6B75FBE3A883")]
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
public class SPService : SPPersistedUpgradableObject
Para retornar o serviço pai de uma instância de serviço, use a propriedade Service da classe SPServiceInstance . Use a propriedade Services da classe SPFarm para retornar um objeto SPServiceCollection que representa a coleção de serviços no farm de servidores. Use um indexador para retornar um único serviço da coleção usando o GUID que identifica o serviço. Por exemplo, se a coleção for atribuída a uma variável chamada myServices, use myServices[index] em C# ou deindexde myServices() no Visual Basic, onde index é o GUID que identifica o serviço.Para recuperar um único serviço da coleção por nome, use o método GetValue . Por exemplo, se a coleção for atribuída a uma variável chamada myServices, use myServices.GetValue<ServiceType>(name) em C# ou myServices.GetValue(ServiceType)(name) no Visual Basic, onde ServiceType é que o tipo de serviço e name é o nome que identifica o serviço.
O exemplo a seguir percorre o histórico de trabalhos de timer para cada serviço no farm e executa novamente os trabalhos de timer que falharam na última hora.
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);
}
}
}
}
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Microsoft.SharePoint.Administration namespace
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