服务器不可用性疑难解答(Windows Server AppFabric 缓存)
Windows Server AppFabric 缓存群集由多台服务器或缓存主机组成。 单台缓存服务器不可用的原因有很多。 在一个常用方案中,管理员可以决定在应用最新操作系统更新之后重新启动其中一个缓存服务器。 本主题从应用程序和缓存群集的角度介绍缓存服务器不可用性。
诊断服务器不可用性
服务器不可用有多中征兆。 首先,应用程序可能会收到一个错误代码为 RetryLater 且子状态为 CacheServerUnavailable 的 DataCacheException 异常。 以下列表提供了应用程序可能获得此异常的两个原因。
缓存群集无法访问缓存配置存储。
应用程序指向不正确、不可用或已关闭的一个或多个缓存主机。
缓存群集已关闭。
应用程序以尚未授予访问缓存群集权限的用户身份运行。
首先,验证您是否可以从其中一个缓存主机服务器访问缓存配置存储。 简单的测试是在其中一个缓存主机服务器上运行 Use-CacheCluster
Windows PowerShell 命令。 如果缓存配置存储不可访问,则您会收到以下错误:
Use-CacheCluster : ErrorCode<ERRPS002>:SubStatus<ES0001>:Invalid provider and connection string read. Please provide the values manually.
如果缓存配置存储可以访问,则使用 Get-CacheHost
命令检查缓存群集中缓存主机的状态。
Get-CacheHost
考虑来自 Get-CacheHost
命令的以下示例输出。
HostName : CachePort Service Name Service Status Version Info
-------------------- ------------ -------------- ------------
CacheServer1:22233 AppFabricCachingService UP 1 [1,1][1,1]
CacheServer2:22233 AppFabricCachingService UNKNOWN 0 [0,0][0,0]
CacheServer3:22233 AppFabricCachingService UP 1 [1,1][1,1]
CacheServer2
缓存主机具有 UNKNOWN
状态。 此外,运行 Get-CacheHost
命令会在 Windows PowerShell 会话中生成异常。 这表明 CacheServer2
服务器不可访问。 如果应用程序仅参考 CacheServer2
,则应用程序将无法访问缓存群集。
除了此处的示例之外,如果一个或多个缓存主机具有 DOWN
状态,则应用程序可能会收到类似错误。
如果所有缓存主机都可操作,则您应该检查是否已授予访问缓存群集的应用程序适当的访问权限。 在事件查看器中,搜索 Admin 日志中事件 ID 为 106 的事件。该事件表明“客户端 {DOMAINNAME\username} 的服务器通道安全授权失败”。
解决服务器不可用性
下表列出了服务器不可用的可能原因以及建议的解决方案。
服务器不可用的原因 | 分辨率 |
---|---|
缓存配置存储无法访问。 |
验证包含缓存配置存储的服务器是否正在运行。 如果使用 XML 提供程序,则验证文件共享的权限。 如果使用 System.Data.SqlClient 提供程序,则验证 SQL Server 的权限并确认 SQL Server 服务正在运行。 有关详细信息,请参阅配置模型。 |
缓存群集已关闭(所有缓存主机都具有 |
使用 |
正在运行的缓存群集中一个或多个缓存主机已关闭。 |
使用 |
一个或多个缓存主机具有 |
验证这些缓存服务器是否正在运行以及是否可以从缓存群集中的其他缓存主机对它们执行 ping 操作。 |
访问缓存群集的用户没有所需的访问权限。 |
使用 |
有关错误为 Retry 且错误子状态为 CacheServerUnavailable 的应用程序异常的详细指南,请参阅RetryLater (CacheServerUnavailable) (Windows Server AppFabric 缓存)。
另请参阅
概念
解决服务器问题(Windows Server AppFabric 缓存)
2011-12-05