Aus der Praxis–Distributed Cache auf einem Standalonesystem
avatar

Ich hatte eine neue SharePoint 2013 – Entwicklungsmaschine auf gesetzt und wollte ein wenig mit dem Newsfeed auf der MySite herumspielen. Leider waren keine Einträge zusehen. Nach ein wenig Nachforschen habe ich herausgefunden, das ich dafür den Distributed Cache Service benötige. Als ich ihn allerdings starten wollte bekam ich den Fehler “CacheHost is null”.

Da ich wirklich nur etwas herumspielen wollte, habe ich das erst einmal sein lassen. Mein Kollege Momme Küsel stieß mich auf einen interessanten Artikel von Raka Satria.

Mit dem Powershellskript aus dessen Blogartikel haben wir etwas herumgespielt und auch den Distributed Cache Service auf dem Standalone-SharePoint zum laufen gebracht.

Unsere Variante des Skripts sieht so aus:

$userName = "Domäne\DistributedCacheServiceAccount"

clear
Add-PSSnapin -Name Microsoft.SharePoint.Powershell -ErrorAction SilentlyContinue

$ServiceAccount = Get-SPManagedAccount -Identity $userName -ErrorAction SilentlyContinue

if ($ServiceAccount -eq $null)
{
                # Get Credentials for $userName and Create New Managed Account
                $credential = Get-Credential -Credential $userName
                $ServiceAccount = New-SPManagedAccount -Credential $credential
}

$CacheService = (Get-SPFarm).Services | ? {$_.Name -eq "AppFabricCachingService"}
$CacheService.ProcessIdentity.CurrentIdentityType = "SpecificUser"
$CacheService.ProcessIdentity.ManagedAccount = $ServiceAccount
$CacheService.ProcessIdentity.Update()

$SPFarm = Get-SPFarm
$cacheClusterName = "SPDistributedCacheCluster_" + $SPFarm.Id.ToString()
$cacheClusterManager = [Microsoft.SharePoint.DistributedCaching.Utilities.SPDistributedCacheClusterInfoManager]::Local
$cacheClusterInfo = $cacheClusterManager.GetSPDistributedCacheClusterInfo($cacheClusterName);
$instanceName ="SPDistributedCacheService Name=AppFabricCachingService"
$serviceInstance = Get-SPServiceInstance | ? {($_.Service.Tostring()) -eq $instanceName -and ($_.Server.Name) -eq $env:computername}

if([System.String]::IsNullOrEmpty($cacheClusterInfo.CacheHostsInfoCollection))
{
                #here's the key. we can't provision, unprovision, start, or stop a Cache Service because we still have a Cache Service that have no server attached  
                $serviceInstance.Delete()
                Add-SPDistributedCacheServiceInstance
                $cacheClusterInfo.CacheHostsInfoCollection
}

Anschließend kann der Distributed Cache Service unter System Settings –> Manage Services on Server gestartet werden. Nun kann ich auch mit dem Newsfeed herumspielen.

6 Gedanken zu “Aus der Praxis–Distributed Cache auf einem Standalonesystem
avatar

  1. Pingback: Aus der Praxis–Distributed Cache auf einen Standalonesystem - SharePoint Blogs in German - Bamboo Nation

  2. Hallo,
    vielen Dank für den interessanten Beitrag. Das wirft bei mir allerdings eine Frage auf. Standalone-Entwicklermaschine: Was ist genau darunter zu verstehen? Beispielsweise eine SQL Server- und SharePoint 2013-Installation auf einem Server, der zu einer Farm gehört?
    Viele Grüße

  3. Vielen Dank für den interessanten Beitrag! – Das wirft bei mir allerdings eine Frage auf. Was ist unter einer Standalone-Dev-Umgebung zu verstehen? Beispielsweise SQL Server + SP2013 auf einem Server in einer Farm?
    Viele Grüße

    • Wenn Sie einen SharePoint installieren, können Sie zwischen der Farm- oder Standalone-Installation wählen. Genau dies meinte ich mit Standalonesystem. Auf unseren Entwicklungsmaschinen bedindet sich dann meist der SharePoint 2013 und ein durch die Standalone-Installation bereitgestellter SQL-Express.

      • Herzlichen Dank für die Klarstellung. Standalone hatte ich hinsichtlich App-Domain, App Management Service und Site Subscription Settings Service noch nicht für eine Dev-Umgebung probiert.

  4. Pingback: SharePoint 2013 Nuggets of the weeks 5,6,7,8 and 9 - Ragnar Heil: SharePoint Nuggets - Site Home - MSDN Blogs

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


6 − drei =

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>