Кэширование AppFabric 1.1 (служба аварийных окон) - PullRequest
6 голосов
/ 12 декабря 2011

У меня есть тестовая установка AppFabric 1.1 x64 (хостинг + кэш) на одном компьютере (зарегистрированном в домене, Windows 7 Enterprise).Установка и настройка прошли без проблем (кластер всего с 1 машиной, конфигурация хранится в SQL), я все запускаю локально (включая SQL Server 2008 R2).Проблема возникает, когда я хочу запустить «Службу кэширования AppFabric» - через несколько секунд происходит сбой, и в административных событиях (в средстве просмотра событий) появляются следующие записи:

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

и

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

и

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

Вот вывод основных команд PowerShell:

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

Служба кэширования настроена для работы в качестве сетевой службы.

Есть ли у вас какие-либо подсказки, что может быть не так?Я видел «Неверный URI: не удалось проанализировать имя хоста». сообщение, но имя в конфигурации кажется вполне подходящим (даже если оно выглядит странным, это правильное имя моего компьютера).Буду признателен за любую помощь.

PS У меня был AppFabric 1.0, и, похоже, он работал нормально.Я удалил его перед установкой AppFabric 1.1.

Ответы [ 2 ]

4 голосов
/ 13 декабря 2011

Мне удалось выяснить причину.

В моем файле хоста Windows было несколько записей для IP-адреса обратной связи: localhost, {имя машины} и {FQDN имени машины}.Когда я удалил все, кроме {имя машины FQDN}, мастер настройки смог установить правильную конфигурацию.

Это был простой способ, но я узнал, что позже ...

Мой первый(и более болезненный) способ решить эту проблему - вручную удалить конфигурацию службы кэширования и заново создать ее с помощью командлетов PowerShell:

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

Служба запускается правильно, но, к сожалению, при проверке установки с помощью команды Get-CacheHost, я получаю:

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

Если вы посмотрите на номер версии, вы увидите, что это, скорее всего, неправильно.К сожалению, когда я пытаюсь обновить эту информацию вручную («Update-CacheHostAllowedVersions»), я получаю странные сообщения об отказе в доступе:

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.

Я должен сделать еще несколько тестов, чтобы выяснить,действительно проблема или просто раздражение.

1 голос
/ 21 мая 2015

Я столкнулся с похожей / той же проблемой, но исправление HOST не помогло.Суть моей проблемы была в том, что у моего сервера длинное (8+ символов) имя.Он был обрезан при настройке кэша.

Первый полезный совет: Get-CacheHost вывод, где имя было неверным.Тогда решение было простым:

  1. Export-CacheClusterConfig -Path <path>\config.xml
  2. Редактировать файл и исправить ваше имя хоста
  3. Import-CacheClusterConfig -Path <path>\config.xml
  4. Start-CacheCluster
...