SharePoint Timer Service stopper med "Unspecified error"
En SharePoint 2013-farm, hvor Timer-tjenesten genstartede hvert andet minut, fordi en fil i konfigurationscachen var låst af User Profile Synchronization Service. Årsagen og fremgangsmåden.
Udgået. SharePoint Server 2013 har været uden support siden 11. april 2023 (Microsoft Learn, “Office 2013 products and Skype for Business 2015 end of support on April 11, 2023”). Den indbyggede User Profile Synchronization Service (FIM,
miiserver.exe), der låste filen her, findes ikke fra SharePoint Server 2016. Den er afløst af Active Directory Import eller Microsoft Identity Manager (Microsoft Learn, “Overview of profile synchronization in SharePoint Server 2016”).
Hændelsesloggen viste denne fejl hvert andet minut:
The SharePoint Timer Service service terminated with the following service-specific error: Unspecified error
Et hurtigt kig på ydeevnen viste, at CPU’en ikke var med på den. Cirka hvert 30. sekund gik den op på 100 %, sandsynligvis fordi Timer-tjenesten blev genstartet igen og igen.
Årsagen#
Løsningen så ud til at være at nulstille konfigurationscachen. Problemet var bare, at en af xml-filerne var låst, og at der også lå en tmp-fil. Efter meget søgen viste det sig, at filen var låst af miiserver.exe. Hvordan og hvorfor, har jeg ingen anelse om, men det betyder, at det var User Profile Synchronization Service, der holdt fast i den. Desuden stod der stadig 1 i cache.ini. Det tal skal være langt større.
SharePoint Tracing Service kørte samtidig som Local System. Det er ikke rigtigt, og det kunne rettes, mens tjenesterne alligevel var stoppet, men det så ikke ud til at have noget med netop denne fejl at gøre.
Det hele startede med, at certifikatet på Office Web Apps-serveren blev fornyet, og at WOPI-bindingerne derefter skulle opdateres. Remove-SPWOPIBinding -Server wac.domain.com gav en fejl, fordi den ikke kunne få adgang til en [GUID].xml-fil i konfigurationsbiblioteket.
Fremgangsmåde#
- Stop SharePoint Timer Service.
- Stop SharePoint Administration Service.
- Stop User Profile Synchronization Service i Central Administration. Tmp-filen forsvinder.
- Giv kontoen bag SharePoint Timer Service fuld adgang til mappen
C:\ProgramData\Microsoft\SharePoint\Config. - I
C:\ProgramData\Microsoft\SharePoint\Config\[senest opdaterede GUID]:- Ret tallet i
cache.initil1. - Slet alle xml-filerne.
- Slet ikke
cache.ini.
- Ret tallet i
- Skift kontoen for SharePoint Tracing Service med PowerShell. Kontoen skal være den samme som til AppFabric Caching Service:
$farm = Get-SPFarm
$Svc = $farm.Services | where {$_.Name -eq "SPTraceV4"}
$accnt = Get-SPManagedAccount -Identity domain\SPServices
$Svc.ProcessIdentity.CurrentIdentityType = "SpecificUser"
$Svc.ProcessIdentity.ManagedAccount = $accnt
$Svc.ProcessIdentity.Update()
$Svc.ProcessIdentity.Deploy()
- Start de tre tjenester igen. Konfigurationsmappen fyldes op med xml-filer, og fejlene forsvinder fra hændelsesloggen.
- Kun i dette tilfælde, hvor WOPI-bindingen ikke kunne opdateres efter certifikatfornyelsen: opret den igen med
New-SPWOPIBinding -ServerName wac.domain.com.
Kilder#
Løsningen er sat sammen af to andres indlæg: et svar på SharePoint Stack Exchange, “The SharePoint Timer Service service terminated unexpectedly” (sharepoint.stackexchange.com/questions/159375), og “Locked file in SharePoint configuration cache” på codeovereasy.com fra december 2012.