AppFabric 1.1 Caching (crashing windows service)

10,110

Solution 1

I've managed to find out what was the reason.

In my Windows host file I had several entries for loopback IP: localhost, {machine name} and {machine name FQDN}. When I removed all but {machine name FQDN}, configuration wizard was able to set up a proper configuration.

This was the easy way, but I learned that later...

My first (and more painful) way to fix the problem was to remove Caching Service configuration manually and re-create it from scratch using PowerShell cmdlets:

Import-Module ApplicationServer
Import-Module DistributedCacheAdministration
Import-Module DistributedCacheConfiguration
New-CacheCluster ...
Register-CacheHost ...
Add-CacheHost ...
Add-CacheAdmin ...
etc.

Service starts proplerly, but sadly, when I verify setup with Get-CacheHost, I receive:

HostName : CachePort                       Service Name            Service Status Version Info
--------------------                       ------------            -------------- ------------
MW7GM0B50ROMDQ.<domain part>:22233         AppFabricCachingService UP             0 [0,0][0,0]

If you look at version number, you'd see that it's most likely improper. Unfortunately, when I try to update this info manually (‘Update-CacheHostAllowedVersions’), I get odd looking ‘access-denied’ errors:

Update-CacheHostAllowedVersions : ErrorCode<ERRCAdmin026>:SubStatus<ES0001>:Remote registry access failed on host MW7GM0B50ROMDQ.<domain part>. Check if the required permissions are available and the host is not down.

I have to make some more tests to find out if it's really a problem or just annoyance.

Solution 2

I've faced a similar/same issue but fixing of HOST didn't help. Core of my problem was my server has long (8+ chars) name. It was trimmed when the Cache was configured.

First useful hint was Get-CacheHost output where the name was incorrect. Then solution was easy:

  1. Export-CacheClusterConfig -Path <path>\config.xml
  2. Edit file and fix your hostname
  3. Import-CacheClusterConfig -Path <path>\config.xml
  4. Start-CacheCluster
Share:
10,110
Sebastian Gebski
Author by

Sebastian Gebski

Updated on June 15, 2022

Comments

  • Sebastian Gebski
    Sebastian Gebski almost 2 years

    I have a test installation of AppFabric 1.1 x64 (Hosting + Cache) on a single machine (domain-registered, Windows 7 Enterprise). Installation and configuration went flawlessly (cluster with just 1 machine, configuration stored in SQL), I'm running everything locally (including SQL Server 2008 R2). Problem occurs when I want to start "AppFabric Caching Service" - it crashes after few seconds and following entries appear in Administrative Events (in Event Viewer):

    Faulting application name: DistributedCacheService.exe, version: 1.0.4632.0, time stamp: 0x4eafeccf
    Faulting module name: KERNELBASE.dll, version: 6.1.7601.17651, time stamp: 0x4e21213c
    Exception code: 0xe0434352
    Fault offset: 0x000000000000cacd
    Faulting process id: 0x1928
    Faulting application start time: 0x01ccb8c5266c0fd5
    Faulting application path: C:\Program Files\AppFabric 1.1 for Windows Server\DistributedCacheService.exe
    Faulting module path: C:\Windows\system32\KERNELBASE.dll
    Report Id: 6457890a-24b8-11e1-b051-70f1a19c8456
    

    and

    Application: DistributedCacheService.exe
    Framework Version: v4.0.30319
    Description: The process was terminated due to an unhandled exception.
    Exception Info: System.UriFormatException
    Stack:
       at Microsoft.ApplicationServer.Caching.VelocityWindowsService.StartServiceCallback(System.Object)
       at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
       at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
       at System.Threading.ThreadPoolWorkQueue.Dispatch()
       at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
    

    and

    AppFabric Caching service crashed with exception {System.UriFormatException: Invalid URI: The hostname could not be parsed.
       at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
       at Microsoft.ApplicationServer.Caching.ServiceConfigurationManager.InitializeThisHostData()
       at Microsoft.ApplicationServer.Caching.ServiceConfigurationManager.InitializeDataFromGlobalConfig()
       at Microsoft.ApplicationServer.Caching.VelocityWindowsService.StartService(Boolean deleteTKT)
       at Microsoft.ApplicationServer.Caching.VelocityWindowsService.StartServiceCallback(Object context)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
       at System.Threading.ThreadPoolWorkQueue.Dispatch()
       at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()}. Check debug log for more information
    

    Here's the output from basic PowerShell commands:

    Get-CacheHost

    HostName : CachePort Service Name            Service Status Version Info
    -------------------- ------------            -------------- ------------
    MW7GM0B50ROMDQ:22233 AppFabricCachingService DOWN           3 [3,3][1,3]
    

    Get-CacheHostConfig

    cmdlet Get-CacheHostConfig at command pipeline position 1
    Supply values for the following parameters:
    HostName: MW7GM0B50ROMDQ
    CachePort: 22233
    
    HostName        : MW7GM0B50ROMDQ
    ClusterPort     : 22234
    CachePort       : 22233
    ArbitrationPort : 22235
    ReplicationPort : 22236
    Size            : 3994 MB
    ServiceName     : AppFabricCachingService
    HighWatermark   : 99%
    LowWatermark    : 90%
    IsLeadHost      : True
    

    Caching Service is set up to be running as Network Service.

    Do you have any clue what may be wrong? I've seen "Invalid URI: The hostname could not be parsed." message, but name in configuration seems to be perfectly ok (even if it looks odd, it's a proper name of my computer). Any help would be appreciated.

    P.S. I had AppFabric 1.0 before and it seemed to work fine. I've uninstalled it before installing AppFabric 1.1.

  • Sebastian Gebski
    Sebastian Gebski over 12 years
    I've managed to set a proper version info, but... Sadly, client connecting causes AppFabric Caching Service crash with an interesting comment: "Invalid enum value 'AdditionalRoutingProps' cannot be deserialized into type 'Microsoft.ApplicationServer.Caching.NamedCacheProperty'". I've raised the issue to Microsoft, maybe they will be able to help.
  • Sebastian Gebski
    Sebastian Gebski over 12 years
    Problem solved. AppFabric's DLLs in GAC are still the ones installed in 1.0 distribution. One can find 1.1 DLLs only in AppFabric's directory in Program Files (or wherever you've chosen to install it). To summarize - I was (not intentionally) trying to access 1.1 server with 1.0 client. After updating the references in the project, everything works well.
  • Dribbel
    Dribbel over 9 years
    Thanks! This saved me, removing an entry from the HOSTS-file resolved my problems. I had an entry with only {machinename}, once removed everything started to work.
  • Olivier MATROT
    Olivier MATROT over 8 years
    In my case, my desktop computer has been moved to another domain. The fix is the same as the host name is a dns name.