AppFabric 1.1 Caching (crashing windows service)
Asked Answered
E

2

6

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.

Easily answered 12/12, 2011 at 13:7 Comment(0)
E
4

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.

Easily answered 12/12, 2011 at 21:8 Comment(3)
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.Easily
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.Easily
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.Sinkhole
F
1

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
Fanaticize answered 21/5, 2015 at 15:9 Comment(1)
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.Drisko

© 2022 - 2024 — McMap. All rights reserved.