SPService class
代表整個伺服器陣列的服務。
Inheritance hierarchy
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)
Syntax
'宣告
<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
備註
若要傳回父項服務的服務執行個體,請使用SPServiceInstance類別之Service屬性。使用SPFarm類別之Services屬性可傳回SPServiceCollection物件,代表伺服器陣列上的服務的集合。使用索引器使用識別服務的 GUID 集合中傳回單一服務。例如,若集合已指派給變數myServices,使用myServices[index]以 C# 或 Visual Basic,其中index為 GUID 識別服務中的myServices(index) 。若要依名稱從集合中擷取單一服務,使用GetValue方法。例如,若集合已指派給變數myServices,使用以 C# myServices.GetValue<ServiceType>(name)或myServices.GetValue(ServiceType)(name)在 Visual Basic 中ServiceType所在的服務和name類型是識別服務的名稱。
Examples
下列範例會逐一查看每個服務伺服器陣列中的計時器工作歷程記錄,並傳回所有已在前一個小時失敗的計時器工作。
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);
}
}
}
}
Thread safety
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
Inheritance hierarchy
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