SharePoint分布式缓存给出错误“对象引用未设置为对象的实例”

时间:2019-02-01 08:07:13

标签: sharepoint appfabric distributed-cache

我要再找一个问题,尽管花了几天时间从各个站点测试解决方案都没有成功,但我确实找不到任何解决方案。

我遇到的问题是针对我们的测试/质量环境的SharePoint 2013的分布式缓存。

服务器场包含4台服务器:

  • 1个WFE服务器
  • 1个应用服务器
  • 1个数据库服务器
  • 1个OWA服务器

我们开始在Application Server上出现Search Service的问题,因此我们决定删除它,但是试图删除它仅花费了几个小时,只是为了通知超时,并导致损坏的Search Service被删除了一半。然后,我们不得不求助于清空SharePoint缓存,然后使用命令“ stsadm -o deleteconfigurationobject -id”删除服务并手动删除与搜索相关的数据库。 之后重新创建Search Service会直接导致该服务损坏或处于错误状态,因此我们决定从服务器场中删除该应用程序,然后再次添加它。这就是分布式缓存的麻烦所在。

要从服务器场中删除服务器,我们只需停止服务器上正在运行的大多数服务,然后删除“分布式缓存”实例即可。尝试通过Central Admin删除服务器总是会给该服务器带来依赖性,但是通过powershell命令(使用“ Disconnect-SPConfigurationDatabase”)传递了该服务器,该服务器仍然存在于Central Admin中的服务器列表中。我们不想从该服务器上卸载SharePoint,因为我们的目标是将其放回原处。

然后,我们尝试将服务器放回服务器场中,但是当我们尝试启动分布式缓存服务时(使用Add-SPDistributedCacheServiceInstance从Central Admin启动)时,直接给出了错误,但Windows服务中的服务已启动,但是在尝试启动它时,或者提供它,或者注册,或者尝试以相反的方式,取消注册,取消供应... Powershell总是出现相同的问题“对象引用未设置为对象的实例”。然后,我们决定研究更多如何从服务器场中删除服务器,以希望它可以删除其余的幽灵元素,从而阻止我们提供分布式缓存服务,经过数小时的研究和一些肮脏的工作,我们可以通过中央管理员将其删除。 。我们还考虑过完全重置应用程序服务器并为其重新命名(以便完全重新安装该服务器)。

按照这个想法,我们决定暂时在WFE上放置分布式缓存服务,但是SharePoint仍然认为应用服务器是缓存的主机,因此我们必须先导出然后导入配置,以检查目标服务器。成功了。使用此处提出的部分解决方案:http://spoodoo.com/fixing-the-appfabric-caching-service-after-renaming-the-server/

现在,在WFE上,AppFabric缓存服务启动没有问题(因此SharePoint表示主机已启动),并且使用“ Add-SPDistributedCacheServiceInstance”不会显示任何错误。但是,尚未启动Central Admin中的服务,但是当尝试通过Central Admin启动该服务或尝试通过PowerShell与之交互时,仍然出现相同的问题“对象引用未设置为对象的实例”,并且在检查日志“ SPDistributedCacheClusterInfo时一片空白”。 解决方案是删除服务,然后使用“ Add-SPDistributedCacheServiceInstance”再次进行设置,但是在获取SP服务实例的状态时,服务的状态始终保持为“禁用”。

我对您的问题是,我们该怎么做才能解决问题,我们不能说为什么分布式缓存现在处于无法找到任何东西可以启动的状态,但是也许您会有想法还没尝试。

预先感谢您的帮助。

0 个答案:

没有答案