Sharepoint 2013 AppFabric无法创建数据缓存(LMTRepopulationJob失败)

Sharepoint 2013 AppFabric无法创建数据缓存(LMTRepopulationJob失败),sharepoint-2013,appfabric,appfabric-cache,distributed-cache,datacachefactory,Sharepoint 2013,Appfabric,Appfabric Cache,Distributed Cache,Datacachefactory,首先,我正在学习sharepoint 2013,并且我一直在学习一些教程,到目前为止,我只是设置了一个服务器场,除此之外,其他一切都正常工作,每5分钟登录一次事件查看器的服务除外: 作业定义的执行方法 Microsoft.Office.Server.UserProfiles.LMT填充作业(ID 1e573155-b7f6-441b-919b-53b2f05770f7)引发异常。更多 资料载于下文 FeedCacheService.BulkLMTUpdate中出现意外异常:无法 创建一个数据缓存

首先,我正在学习sharepoint 2013,并且我一直在学习一些教程,到目前为止,我只是设置了一个服务器场,除此之外,其他一切都正常工作,每5分钟登录一次事件查看器的服务除外:

作业定义的执行方法 Microsoft.Office.Server.UserProfiles.LMT填充作业(ID 1e573155-b7f6-441b-919b-53b2f05770f7)引发异常。更多 资料载于下文

FeedCacheService.BulkLMTUpdate中出现意外异常:无法 创建一个数据缓存。SPDistributedCache可能已关闭

我发现这是一个配置为每5分钟执行一次的作业

但是关于SPDistributedCache可能已关闭的假设,我已经验证了它,并且它正在运行

如您所见,它实际上正在运行,我还通过SP powershell检查了主机缓存(
get cachehost
get cacheclusterhealth
),但一切似乎都很好

然而,当我执行命令
get cache
时,我只得到默认值,并且对于我读到的内容,应该列出另一种缓存类型,如:

分布式访问缓存\uuxxxxxxxxxxxxxxxxxxxxxxxx 分布式弹跳缓存\uuxxxxxxxxxxxxxxxxxxxxxxxx 分布式搜索缓存\uuxxxxxxxxxxxxxxxxxxxxxxxx DistributedServerToAppServerAccessTokenCache_uxxxxxx 分布式ViewStateCache_uxxxxxxxxxxxxxxxxxxxxxxxx

其中我认为应该包括DataCache

到目前为止,我已经尝试了一些变通方法,但没有成功

Restart-Service AppFabricCachingService
Remove-SPDistributedCacheServiceInstance
Add-SPDistributedCacheServiceInstance
Restart-CacheCluster
即使是这个脚本,它似乎在许多情况下都可以修复AppFabric缓存服务

$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 $env:computername}
$serviceInstance.Delete()
Add-SPDistributedCacheServiceInstance
$cacheClusterInfo.CacheHostsInfoCollection

如果有人有任何建议,我将不胜感激,提前谢谢

您是否已从服务器场帐户更改分布式缓存帐户? 你是哪个版本的? 这是单个服务器场吗

我脑子里只剩下这个:

授予CacheAllowedClientAccount-帐户“域\ProfileserviceWebAppIdentity”


运行此命令后,我将执行iisreset并重新启动owstimer服务。

这是一条一般性错误消息,意味着真正的问题未知(因此使用“可能”一词)

我认为,解决这一问题的关键是在ULS日志中查找之前发生的事件。“意外”类型的事件不会出现在事件日志中,通常出现在一般类型的错误之前


在许多情况下,您可能会看到类似“未找到文件”的内容。这通常意味着记录的文件不在程序集缓存中。由于分布式缓存使用Sharepoint之外的AppFabric,因此Sharepoint查找其文件的唯一方法是查找程序集缓存。sharepoint预安装程序本应将文件放在那里,但可能已失败,或者可能有人卸载了App Fabric并手动重新安装,这将从程序集中删除文件,而不是将其放回。

重新启动CacheCluster
之前,您可以指定与sharepoint数据库的连接(目录名称可能不同)

注意:它不会永久工作

注意2:如果您在DB Server上没有命名实例,只需将您的服务器名称放在不带“\”的位置即可

如果没有目录,可以按照以下脚本操作

***
Remove-Cache default
New-Cache SharePointCache
Get-CacheConfig SharePointCache
Set-CacheConfig SharePointCache -NotificationsEnabled True
***
New-CacheCluster -Provider System.Data.SqlClient -ConnectionString  "Data     Source=(SharePoint DB Server)\\(Optional Instance);Initial Catalog=CacheClusterConfigurationDB;Integrated Security=True" -Size Small

Register-CacheHost -Provider System.Data.SqlClient -ConnectionString  "Data Source=(SharePoint DB Server)\\(Optional Instance);Initial Catalog=CacheClusterConfigurationDB;Integrated Security=True"  -Account "Domain\spservices_account" -CachePort 22233 -ClusterPort 22234  -ArbitrationPort 22235 -ReplicationPort 22236 -HostName  [Name_of_your_server]

Add-CacheHost -Provider System.Data.SqlClient -ConnectionString  "Data Source=(SharePoint DB Server)\\(Optional Instance);Initial Catalog=CacheClusterConfigurationDB;Integrated Security=True" -Account "Domain\spservices_account"

Add-CacheAdmin -Provider System.Data.SqlClient -ConnectionString  "Data Source=(SharePoint DB Server)\\(Optional Instance);Initial Catalog=CacheClusterConfigurationDB;Integrated Security=True" 

Use-CacheCluster

您可以在regedit中指定或检查数据库配置

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppFabric\V1.0\Configuration
查找ConnectionString字符串值,并设置连接字符串

Data Source=(SharePoint DB Server)\(Optional Instance);Initial Catalog=CacheClusterConfigurationDB;Integrated Security=True
要查询服务器的状态,可以使用:

Get-SPServiceInstance | ? {($_.service.tostring()) -eq “SPDistributedCacheService Name=AppFabricCachingService”} | select Server, Status
Get-SPServer | ? {($_.ServiceInstances | % TypeName) -contains "Distributed Cache"} | % Address
Get-AFCache | Format-Table –AutoSize
Get-CacheHost

传统的: 如果您需要更改服务帐户,可以执行以下步骤:

$f = Get-SPFarm
$svc = $f.Services | ? {$_.Name -eq "AppFabricCachingService"}
$acc = Get-SPManagedAccount -Identity "Domain\spservices_account"
$svc.ProcessIdentity.CurrentIdentityType = "SpecificUser"
$svc.ProcessIdentity.ManagedAccount = $acc
$svc.ProcessIdentity.Update()
$svc.ProcessIdentity.Deploy()

你的问题是什么?我如何才能使这项工作正常执行?我想我已经提供了足够的信息来理解我的问题,如果你需要任何其他信息,请告诉我,但请不要玩SmartAss你是否遵循了和中的说明?是的,我只是做了,没有工作,我认为问题与数据缓存tha有关t尚未初始化,但我找不到如何修复,否则我将不得不重建场:(-目前我正在使用我的域\spFarmAcc,我已经尝试了其他帐户,但它不起作用…-是的,目前是单服务器场…-版本号是15.0.4753.1000-我还尝试了您建议的命令,但没有成功,谢谢您,但可能还有其他建议吗?这可能看起来很愚蠢,但这是您的MySite和newsfeed配置?我一直看到这个错误,除非它导致某些东西无法工作,否则我通常会忽略它。
$f = Get-SPFarm
$svc = $f.Services | ? {$_.Name -eq "AppFabricCachingService"}
$acc = Get-SPManagedAccount -Identity "Domain\spservices_account"
$svc.ProcessIdentity.CurrentIdentityType = "SpecificUser"
$svc.ProcessIdentity.ManagedAccount = $acc
$svc.ProcessIdentity.Update()
$svc.ProcessIdentity.Deploy()