我在一台计算机(域名注册,Windows 7企业版)上安装了AppFabric 1.1 x64(托管+缓存)。安装和配置完美无缺(集群只有一台机器,配置存储在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命令的输出:
获取-CacheHost
HostName : CachePort Service Name Service Status Version Info
-------------------- ------------ -------------- ------------
MW7GM0B50ROMDQ:22233 AppFabricCachingService DOWN 3 [3,3][1,3]
获取-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:无法解析主机名。”消息,但配置中的名称似乎完全没问题(即使它看起来很奇怪,它也是我计算机的正确名称)。任何帮助将不胜感激。
P.S。之前我有AppFabric 1.0,它似乎工作正常。我在安装AppFabric 1.1之前已将其卸载。
答案 0 :(得分:4)
我设法找出原因。
在我的Windows主机文件中,我有几个环回IP条目:localhost,{machine name}和{machine name FQDN}。当我删除{machine name FQDN}以外的所有内容时,配置向导能够设置正确的配置。
这是一种简单的方法,但我后来才知道......
我解决问题的第一个(也是更痛苦的)方法是手动删除缓存服务配置,并使用PowerShell cmdlet从头开始重新创建:
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 :(得分:1)
我遇到了类似/相同的问题,但修复HOST并没有帮助。我的问题的核心是我的服务器有很长(8+字符)的名字。在配置缓存时对其进行了修剪。
第一个有用的提示是Get-CacheHost
输出,其中名称不正确。然后解决方案很简单:
Export-CacheClusterConfig -Path <path>\config.xml
Import-CacheClusterConfig -Path <path>\config.xml
Start-CacheCluster