如何重置SharePoint Content Database缓存以读取服务器本地文件数据
以下是经过实测可行的几类操作路径,可根据你的测试场景选择:
方法1:PowerShell 直接清理内容数据库缓存
适用于需要清除内容库中已缓存的Blob数据、对象缓存的场景:
- 以场管理员身份运行 SharePoint Management Shell
- 依次执行以下命令:
# 替换为你要清理的内容数据库名称 $contentDB = Get-SPContentDatabase "你的内容数据库名称" # 清理已标记删除的Blob缓存 $contentDB.RemoteBlobStorageSettings.PurgeTombstonedBlobs() # 清理全站对象缓存 Get-SPSite -Limit All | ForEach-Object { $_.CatchObjects.Clear() }
方法2:清理WFE服务器本地文件缓存
适用于需要重置整个场的内容缓存、强制读取最新本地数据的场景:
- 停止所有前端服务器的
SharePoint Timer Service和World Wide Web Publishing Service服务 - 进入路径
C:\ProgramData\Microsoft\SharePoint\Config\,打开对应你SharePoint场ID的文件夹 - 删除文件夹内所有XML格式的缓存文件,不要删除
cache.ini文件 - 打开
cache.ini文件,将里面的数值修改为1后保存退出 - 重启之前关闭的两个服务,等待3-5分钟缓存自动重建完成
方法3:站点级缓存刷新
适用于仅需要清理特定站点/文档库缓存的场景:
- 进入目标站点的「站点设置」页面
- 找到「站点集管理」分类下的「网站集输出缓存」
- 勾选「强制所有站点在下次请求时刷新输出缓存」选项后保存
- 如果是自定义逻辑读取本地文件的测试场景,额外回收对应站点的IIS应用程序池即可
操作前请完整备份内容数据库及SharePoint场配置,所有操作仅建议在测试环境执行。如果你的测试场景是读取未纳入SharePoint内容库的本地服务器文件,需确认相关逻辑已经绕过SharePoint默认的文件路由规则,否则清理缓存无法解决读取权限问题。
内容的提问来源于stack exchange,提问作者Feransic22111
相关产品推荐
相关产品推荐

