SharePoint 2013移除服务器报错"CacheHostInfo is null"
笔者将一台SharePoint 场中的一台机器通过Configuration Wizard退了场. 当笔者想到管理中心去Remove Server的时候, 遇到了报错:
CacheHostInfo is null
上网搜索一下, 发现这篇文章. 写得非常好, 我把他的脚本运行了一遍, 解决了这个问题.
问题描述
===========================
ULS Log中的条目
06/06/2013 23:50:51.33 w3wp.exe (0x17AC) 0x067C SharePoint Foundation DistributedCache ajeou Unexpected A failure occurred in SPDistributedCacheServiceInstance::UnprovisionInternal. cacheHostInfo is null for host 'APP1'. 3cf9229c-3b22-2062-33bb-ec5a90a0419f
06/06/2013 23:50:51.33 w3wp.exe (0x17AC) 0x067C SharePoint Foundation DistributedCache ajeoy Unexpected A failure occurred SPDistributedCacheServiceInstance::UnprovisionInternal()... isGraceFulShutDown 'False' , isGraceFulShutDown, Exception 'System.InvalidOperationException: cacheHostInfo is null at Microsoft.SharePoint.DistributedCaching.Utilities.SPDistributedCacheServiceInstance.UnProvisionInternal(Boolean isGraceFulShutDown)' 3cf9229c-3b22-2062-33bb-ec5a90a0419f
06/06/2013 23:50:51.33 w3wp.exe (0x17AC) 0x067C SharePoint Foundation DistributedCache aelvg Unexpected A failure occurred SPDistributedCacheServiceInstance::UnProvision() , Exception 'System.InvalidOperationException: cacheHostInfo is null at Microsoft.SharePoint.DistributedCaching.Utilities.SPDistributedCacheServiceInstance.UnProvisionInternal(Boolean isGraceFulShutDown) at Microsoft.SharePoint.DistributedCaching.Utilities.SPDistributedCacheServiceInstance.Unprovision()' 3cf9229c-3b22-2062-33bb-ec5a90a0419f
06/06/2013 23:50:51.34 w3wp.exe (0x17AC) 0x067C SharePoint Foundation Runtime tkau Unexpected System.InvalidOperationException: cacheHostInfo is null at Microsoft.SharePoint.DistributedCaching.Utilities.SPDistributedCacheServiceInstance.UnProvisionInternal(Boolean isGraceFulShutDown) at Microsoft.SharePoint.DistributedCaching.Utilities.SPDistributedCacheServiceInstance.Unprovision() at Microsoft.SharePoint.Administration.SPServer.Delete() at Microsoft.SharePoint.WebControls.TopologyView.RemoveLink_Click(Object sender, CommandEventArgs e) at System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 3cf9229c-3b22-2062-33bb-ec5a90a0419f
解决方案
==================
脚本列在这里.
$SPFarm = Get-SPFarm $cacheClusterName = "SPDistributedCacheCluster_" + $SPFarm.Id.ToString() $cacheClusterManager = [Microsoft.SharePoint.DistributedCaching.Utilities.SPDistributedCacheClusterInfoManager]::Local $cacheClusterInfo = $cacheClusterManager.GetSPDistributedCacheClusterInfo($cacheClusterName) $instanceName ="SPDistributedCacheService Name=AppFabricCachingService" $serviceInstance = Get-SPServiceInstance | ? {($_.Service.Tostring()) -eq $instanceName -and ($_.Server.Name) -eq "APP1"} $serviceInstance.Delete() $cacheClusterInfo.CacheHostsInfoCollection
这里值得学习的是Get-SPServiceInstance的使用以及如何对其中的结果进行filter, 从而得到自己想要的service instance的用法.
排错中心思想很简单, 已经退场的服务器APP1上还有Distribution Cache服务的注册信息没有清理干净. 需要找到这个service instance, 删掉它.
参考资料
==============================
Cannot Remove Server Reference from Farm CacheHostInfo is null
http://summit7systems.com/cannot-remove-server-reference-from-farm-cachehostinfo-is-null/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律