2011-12-12 28 views
6

Tengo una instalación de prueba de AppFabric 1.1 x64 (Hosting + Cache) en una sola máquina (registrada en el dominio, Windows 7 Enterprise). La instalación y la configuración se realizaron sin problemas (clúster con solo 1 máquina, configuración almacenada en SQL), estoy ejecutando todo localmente (incluido SQL Server 2008 R2). El problema se produce cuando quiero empezar "AppFabric servicio de almacenamiento en caché" - se bloquea después de unos segundos y siguientes aparecen entradas en eventos administrativos (en Visor de sucesos):AppFabric 1.1 Almacenamiento en caché (servicio de ventanas bloqueadas)

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 

y

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() 

y

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 

Aquí está la salida de PowerShell comandos básicos:

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 

servicio de almacenamiento en caché está configurado para ejecutarse como servicio de red.

¿Tiene alguna pista de lo que puede estar mal? He visto "URI no válido: el nombre de host no se pudo analizar". mensaje, pero el nombre en la configuración parece estar perfectamente bien (incluso si parece extraño, es un nombre propio de mi computadora). Cualquier ayuda sería apreciada.

P.S. Tenía AppFabric 1.0 antes y parecía funcionar bien. Lo desinstalé antes de instalar AppFabric 1.1.

Respuesta

4

He logrado averiguar cuál es el motivo.

En mi archivo de host de Windows tuve varias entradas para IP de loopback: localhost, {machine name} y {machine name FQDN}. Cuando quité todo menos {nombre del equipo FQDN}, el asistente de configuración pudo configurar una configuración adecuada.

Este fue el camino más fácil, pero he aprendido que después ...

Mi primera (y más dolorosa) manera de solucionar el problema consistía en eliminar manualmente la configuración de servicio de almacenamiento en caché y volver a crearlo desde cero utilizando PowerShell cmdlets:

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

servicio se inicia proplerly, pero por desgracia, cuando se verifico configuración con Get-CacheHost, que reciben:

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

Si nos fijamos en la versión número, verías que es muy improbable. Por desgracia, cuando trato de actualizar esta información manualmente ('update-CacheHostAllowedVersions'), que producirán errores de 'acceso denegado' de aspecto raro:

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. 

Tengo que hacer más pruebas para averiguar si es realmente una problema o simplemente molestia.

+0

he logrado establecer una información de la versión correcta, pero ... Desgraciadamente , la conexión del cliente hace que AppFabric Caching Service se cuelgue con un comentario interesante: "Valor enum no válido 'AdditionalRoutingProps' no se puede deserializar en tipo 'Microsoft.ApplicationServer.Caching.NamedCacheProp' erty '". Le he planteado el problema a Microsoft, quizás puedan ayudarlo. –

+0

Problema resuelto. Los archivos DLL de AppFabric en GAC siguen siendo los que están instalados en la distribución 1.0. Uno puede encontrar archivos DLL 1.1 solo en el directorio de AppFabric en Archivos de programa (o donde haya elegido instalarlo). Para resumir, estaba (no intencionalmente) intentando acceder al servidor 1.1 con el cliente 1.0. Después de actualizar las referencias en el proyecto, todo funciona bien. –

+0

Gracias! Esto me salvó, eliminar una entrada del archivo HOSTS resolvió mis problemas. Tenía una entrada con solo {machinename}, una vez que se eliminó todo comenzó a funcionar. – Dribbel

1

Me he enfrentado a un problema similar/mismo pero la fijación de HOST no ayudó. El núcleo de mi problema es que mi servidor tiene un nombre largo (más de 8 caracteres).Se recortó cuando se configuró la memoria caché.

La primera sugerencia útil fue Get-CacheHost donde el nombre era incorrecto. A continuación, la solución era fácil:

  1. Export-CacheClusterConfig -Path <path>\config.xml
  2. Editar archivos y reparar su nombre de host
  3. Import-CacheClusterConfig -Path <path>\config.xml
  4. Start-CacheCluster
+0

En mi caso, mi computadora de escritorio se ha movido a otro dominio. La solución es la misma que el nombre de host es un nombre de DNS. –

Cuestiones relacionadas