Wer schon einmal mit dem Distributed Cache in SharePoint 2019 gekämpft hat, weiß:
Wenn er kaputt ist, dann richtig.
In meinem Fall sah das Fehlerbild so aus:
- Service Instance geht auf Provisioning
- Nach ca. 1–2 Minuten springt sie zurück auf Disabled
Use-CacheClustermeldet fehlende Provider-/ConnectionString-WerteRemove-SPDistributedCacheServiceInstanceschlägt mitcacheHostInfo is nullfehl- AppFabric-Registry bleibt leer (
AdminConfigured = 0)
Kurz gesagt: Der Cache war logisch in der Farm vorhanden, technisch aber nicht mehr sauber konfiguriert. Und die Standard-Cmdlets kamen nicht mehr an die kaputte ServiceInstance heran.
Nach viel Zeit mit AppFabric-Installationen, GAC-Checks, ACLs, Timer-Service, IIS und ULS-Logs war klar:
Das Problem saß nicht mehr in AppFabric – sondern in der SharePoint-Konfigurationsdatenbank.
Das eigentliche Problem
Die Distributed Cache Service Instance war inkonsistent in der Farm registriert.
Das führte zu:
cacheHostInfo is null- Provisioning → Disabled
- Remove schlägt fehl
- Add bringt keine saubere Konfiguration
In so einem Zustand hilft kein Repair mehr.
Man muss die kaputte ServiceInstance hart aus der Farm entfernen.
Die Lösung: ServiceInstance sauber löschen und neu aufbauen
Folgende Vorgehensweise hat das Problem endgültig gelöst.
Kaputte Distributed Cache ServiceInstance hart löschen
$SPFarm = Get-SPFarm $cacheClusterName = "SPDistributedCacheCluster_" + $SPFarm.Id.ToString() $cacheClusterManager = [Microsoft.SharePoint.DistributedCaching.Utilities.SPDistributedCacheClusterInfoManager]::Local $cacheClusterInfo = $cacheClusterManager.GetSPDistributedCacheClusterInfo($cacheClusterName) $serviceInstance = Get-SPServiceInstance | ? { $_.TypeName -eq "Verteilter Cache" -and $_.Server.Name -eq $env:COMPUTERNAME } $serviceInstance.Delete()
Wichtig:
- PowerShell als Farm Admin + lokaler Administrator
- Shell elevated starten
- Timer Service muss laufen
Der entscheidende Teil ist $serviceInstance.Delete().
Damit wird die ServiceInstance direkt aus der Konfigurationsdatenbank entfernt – auch dann, wenn Remove-SPDistributedCacheServiceInstance wegen cacheHostInfo is null versagt.
Danach prüfen:
Get-SPServiceInstance | ? {$_.TypeName -eq "Verteilter Cache"}
cacheHostInfo is null: Sie sollte nicht mehr erscheinen.
SharePoint Configuration Wizard ausführen
Jetzt den SharePoint-Konfigurationsassistenten (PSConfig) laufen lassen.
Warum?
Weil nach so einem Eingriff:
- Timer Jobs
- ServiceDefinitions
- IIS-Konfiguration
- Farm-Registrierungen
wieder synchronisiert werden müssen.
Gerade wenn zuvor AppFabric oder IIS-Probleme im Spiel waren, ist das wichtig.
Distributed Cache neu hinzufügen
Add-SPDistributedCacheServiceInstance
Anschließend prüfen:
Get-SPServiceInstance | ? {$_.TypeName -eq "Verteilter Cache"}
Status sollte jetzt:
Online
sein.
AppFabric prüfen
Jetzt sollte auch die Registry korrekt befüllt sein:
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\AppFabric\V1.0\Configuration"
Erwartet:
AdminConfigured = 1ServiceConfigured = 1ProvidergefülltConnectionStringgefüllt
Und der Cluster:
Import-Module DistributedCacheAdministration
Use-CacheCluster
Get-CacheHost
Import-Module DistributedCacheAdministration
Use-CacheCluster
Get-CacheHost
Single-Server-Farm → genau ein Host, Status UP.
Warum das funktioniert hat
Der eigentliche Fehler war keine kaputte AppFabric-Installation,
sondern eine inkonsistente ServiceInstance in der SharePoint-Farm.
Sobald diese hart gelöscht und sauber neu registriert wurde, konnte SharePoint:
- den CacheHost neu anlegen
- AppFabric korrekt konfigurieren
- Provider/ConnectionString schreiben
- den Cluster initialisieren
Typische Symptome, bei denen diese Lösung hilft
- Provisioning → Disabled
cacheHostInfo is nullUse-CacheClusterkann Provider nicht lesenRemove-SPDistributedCacheServiceInstanceschlägt fehl- Registry bleibt leer
- AppFabric läuft, aber SharePoint nutzt ihn nicht
Fazit
Wenn der Distributed Cache in SharePoint 2019 in einem inkonsistenten Zustand hängt, hilft es nicht, endlos:
- AppFabric zu reparieren
- DLLs zu kopieren
- ConnectionStrings manuell zu setzen
- Dienste neu zu starten
Manchmal ist die saubere Lösung:
Die defekte ServiceInstance aus der Farm entfernen
und komplett neu provisionieren.
Seitdem läuft der Distributed Cache wieder stabil und sauber.
Wenn du ähnliche Symptome siehst, lohnt sich ein Blick in diese Richtung –
vor allem wenn cacheHostInfo is null im Spiel ist.