2011-12-12 2 views
6

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

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 

Caching Service настроен, работает как сетевая служба.

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

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

ответ

4

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

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

Это был легкий путь, но я узнал, что позже ...

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

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

служба начинается proplerly, но, к сожалению, когда я проверить установку с 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. 

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

+0

мне удалось установить правильную информацию о версии, но ... К сожалению , соединение с клиентом вызывает сбой AppFabric Caching Service с интересным комментарием: «Недопустимое значение enum« AdditionalRoutingProps »нельзя десериализовать в тип« Microsoft.ApplicationServer.Caching.NamedCacheProp erty». Я поднял вопрос в Microsoft, может быть, они смогут помочь. –

+0

Проблема решена. Библиотеки DLL AppFabric в GAC все еще установлены в дистрибутиве 1.0. 1.1 DLL можно найти только в каталоге AppFabric в Program Files (или там, где вы решили установить его). Подводя итог - я (не намеренно) пытался получить доступ к 1.1 серверу с клиентом 1.0. После обновления ссылок в проекте все работает хорошо. –

+0

Спасибо! Это спасло меня, удалив запись из файла HOSTS, разрешила мои проблемы. У меня была запись только с {machinename}, после удаления все начало работать. – Dribbel

1

Я столкнулся с аналогичной проблемой, но фиксация HOST не помогла. Ядро моей проблемы состояло в том, что у моего сервера было длинное имя (8+ chars).Он был обрезан, когда был настроен кеш.

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

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

В моем случае мой настольный компьютер был перемещен в другой домен. Исправление совпадает с именем хоста - это имя DNS. –

Смежные вопросы