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.
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.