2011-12-12 9 views
6

J'ai une installation de test de AppFabric 1.1 x64 (Hosting + Cache) sur une seule machine (enregistrée dans le domaine, Windows 7 Enterprise). L'installation et la configuration se sont parfaitement déroulées (cluster avec seulement 1 machine, configuration stockée en SQL), je suis en train de tout faire en local (y compris SQL Server 2008 R2). Problème se produit quand je veux commencer « AppFabric Service de caching » - il se bloque après quelques secondes et les entrées suivantes apparaissent dans des événements administratifs (dans l'Observateur d'événements):AppFabric 1.1 Mise en cache (service Windows crash)

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 

et

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

et

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 

Voici la sortie de commandes PowerShell de base:

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 

service caching est à exécuter en tant que service réseau.

Avez-vous la moindre idée de ce qui ne va pas? J'ai vu "Invalid URI: Le nom d'hôte n'a pas pu être analysé." message, mais le nom dans la configuration semble être parfaitement ok (même si cela semble étrange, c'est un nom propre de mon ordinateur). Toute aide serait appréciée.

P.S. J'avais auparavant AppFabric 1.0 et cela semblait fonctionner correctement. Je l'ai désinstallé avant d'installer AppFabric 1.1.

Répondre

4

J'ai réussi à trouver quelle était la raison.

Dans mon fichier hôte Windows, j'avais plusieurs entrées pour l'IP de bouclage: localhost, {nom de la machine} et {nom de la machine FQDN}. Lorsque j'ai supprimé tout sauf {nom de la machine nom de domaine complet}, l'assistant de configuration a pu configurer une configuration correcte.

Ce fut le moyen facile, mais je l'ai appris plus tard ...

Ma première (et plus douloureuse) façon de résoudre le problème était de supprimer la configuration manuelle et service Caching recréer à partir de zéro en utilisant PowerShell cmdlets:

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

service commence proplerly, mais malheureusement, quand je vérifie la configuration avec Get-CacheHost, je reçois:

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

Si vous regardez la version nombre, vous verriez que c'est probablement impropre. Malheureusement, lorsque je tente de mettre à jour ces informations manuellement les erreurs (« Update-CacheHostAllowedVersions »), je reçois impair recherche « accès refusé »:

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. 

Je dois faire quelques autres tests pour savoir si elle est vraiment problème ou tout simplement ennui.

+0

J'ai réussi à définir une information de version correcte, mais ... Malheureusement, , le client qui se connecte provoque un crash du service AppFabric Caching Service avec un commentaire intéressant: "La valeur enum invalide 'AdditionalRoutingProps' ne peut pas être désérialisée en type 'Microsoft.ApplicationServer.Caching.NamedCacheProp erty '". J'ai soulevé la question à Microsoft, peut-être qu'ils seront en mesure d'aider. –

+0

Problème résolu. Les DLL d'AppFabric dans GAC sont toujours celles installées dans la distribution 1.0. On peut trouver 1.1 DLLs seulement dans le répertoire AppFabric dans Program Files (ou partout où vous avez choisi de l'installer). En résumé - je tentais (pas intentionnellement) d'accéder au serveur 1.1 avec le client 1.0. Après avoir mis à jour les références dans le projet, tout fonctionne bien. –

+0

Merci! Cela m'a sauvé, en supprimant une entrée du fichier HOSTS résolu mes problèmes. J'avais une entrée avec seulement {machinename}, une fois enlevé tout a commencé à travailler. – Dribbel

1

J'ai fait face à un problème similaire/similaire, mais la réparation de HOST n'a pas aidé. Le noyau de mon problème était mon nom de serveur long (8+ caractères).Il a été réduit lorsque le cache a été configuré.

Le premier indice utile était Get-CacheHost lorsque le nom était incorrect. Ensuite, la solution était simple:

  1. Export-CacheClusterConfig -Path <path>\config.xml
  2. Modifier le fichier et corriger votre nom d'hôte
  3. Import-CacheClusterConfig -Path <path>\config.xml
  4. Start-CacheCluster
+0

Dans mon cas, mon ordinateur de bureau a été déplacé vers un autre domaine. Le correctif est le même que le nom d'hôte est un nom DNS. –

Questions connexes