AppFabric 1.1缓存(崩溃的Windows服务)

Seb*_*ski 6 .net caching appfabric

我在一台计算机上进行了AppFabric 1.1 x64(主机+缓存)的测试安装(域名注册,Windows 7企业版).安装和配置完美无缺(集群只有一台机器,配置存储在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
Run Code Online (Sandbox Code Playgroud)

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()
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

这是基本PowerShell命令的输出:

GET-CacheHost

HostName : CachePort Service Name            Service Status Version Info
-------------------- ------------            -------------- ------------
MW7GM0B50ROMDQ:22233 AppFabricCachingService DOWN           3 [3,3][1,3]
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

缓存服务设置为作为网络服务运行.

你有什么可能是错的线索吗?我见过"无效的URI:主机名无法解析." 消息,但配置中的名称似乎完全没问题(即使它看起来很奇怪,它是我的计算机的正确名称).任何帮助,将不胜感激.

PS我以前有AppFabric 1.0,它似乎工作正常.我在安装AppFabric 1.1之前已经卸载了它.

Seb*_*ski 4

我已经设法找出原因是什么。

\n\n

在我的 Windows 主机文件中,我有几个环回 IP 条目:localhost、{machine name} 和 {machine name FQDN}。当我删除除 {machine name FQDN} 之外的所有内容时,配置向导能够设置正确的配置。

\n\n

这是最简单的方法,但后来我了解到......

\n\n

我解决该问题的第一个(也是更痛苦的)方法是手动删除缓存服务配置,然后使用 PowerShell cmdlet 从头开始​​重新创建它:

\n\n
Import-Module ApplicationServer\nImport-Module DistributedCacheAdministration\nImport-Module DistributedCacheConfiguration\nNew-CacheCluster ...\nRegister-CacheHost ...\nAdd-CacheHost ...\nAdd-CacheAdmin ...\netc.\n
Run Code Online (Sandbox Code Playgroud)\n\n

服务正常启动,但遗憾的是,当我使用 Get-CacheHost 验证设置时,我收到:

\n\n
HostName : CachePort                       Service Name            Service Status Version Info\n--------------------                       ------------            -------------- ------------\nMW7GM0B50ROMDQ.<domain part>:22233         AppFabricCachingService UP             0 [0,0][0,0]\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果您查看版本号,您会发现它很可能不正确。不幸的是,当我尝试手动更新此信息(\xe2\x80\x98Update-CacheHostAllowedVersions\xe2\x80\x99)时,出现奇怪的 \xe2\x80\x98access-denied\xe2\x80\x99 错误:

\n\n
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.\n
Run Code Online (Sandbox Code Playgroud)\n\n

我必须进行更多测试以确定这是否确实是一个问题或只是烦恼。

\n