在 SharePoint Server 中为 Web 应用程序配置缓存设置

适用于:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

本文介绍如何在 SharePoint Server 中为 Web 应用程序配置基于磁盘的 BLOB 缓存、页输出缓存配置文件和对象缓存。

您可以启用和配置 BLOB 缓存,并在要对其应用更改的 Web 应用程序的 Web.config 文件中更改页面输出缓存配置文件和对象缓存的配置。 您对 Web.config 文件所做的更改将应用到 Web 应用程序中的所有网站集。

SharePoint Server 包括缓存性能监视器,可用于验证场缓存设置是否正确以及缓存是否以最佳性能运行。 有关详细信息,请参阅 在 SharePoint Server 2016 中监视缓存性能

注意

如果在 Web 应用程序级配置页面输出缓存配置文件和对象缓存,将取代网站管理员在网站集级或更低级别所做的任何配置。

提示

BLOB 缓存有时与内容不同步。 例如,还原内容数据库之后,BLOB 缓存将与内容不同步。 要更正该状况,您必须刷新 BLOB 缓存。 有关详细信息,请参阅 刷新 SharePoint Server 中的 BLOB 缓存

有关详细信息,请参阅 SharePoint Server 中的缓存设置操作

配置 BLOB 缓存设置

默认情况下,基于磁盘的 BLOB 缓存处于禁用状态,如果要使用它,必须在前端 Web 服务器上将其启用。 请使用以下过程来配置用于 Web 应用程序的基于磁盘的缓存设置。

重要

在对 web.config 文件进行更改之前,先使用不同的名称(例如,web.config1)制作一份副本,以便在文件中进行了错误更改时,可以恢复原始文件。

配置 BLOB 缓存设置

  1. 验证您是否具有以下管理凭据:您必须是本地计算机上的管理员组的成员,才能配置 BLOB 缓存设置。

  2. 打开“服务器管理器”,单击“工具”,然后单击“Internet Information Services (IIS) 管理器”。

  3. 在“Internet Information Services (IIS) 管理器”的“ 连接 ”窗格中,展开包含 Web 应用程序的服务器名称,然后展开 “站点” 以查看已创建的 Web 应用程序。

  4. 右键单击要配置基于磁盘的缓存的 Web 应用程序的名称,然后单击"资源管理器"。 Windows 资源管理器将打开,其中包含列出的选定 Web 应用程序的目录。

  5. “打开使用 ”对话框中,单击“ 记事本”,然后单击“ 确定”。

  6. 在 web.config 记事本文件中,找到以下行: <BlobCache location="C:\BlobCache\14" path="\.(gif|jpg|jpeg|jpe|jfif|bmp|dib|tif|tiff|themedbmp|themedcss|themedgif|themedjpg|themedpng|ico|png|wdp|hdp|css|js|asf|avi|flv|m4v|mov|mp3|mp4|mpeg|mpg|rm|rmvb|wma|wmv|ogg|ogv|oga|webm|xap)$" maxSize="10" enabled="false" />

    使用图像呈现形式时的默认图像大小上限为 4000 万像素。 如果要修改此值,则需要添加 imageRenditionMaxSourcePixels 参数。 例如: <BlobCache location="C:\BlobCache\14" path="\.(gif|jpg|jpeg|jpe|jfif|bmp|dib|tif|tiff|themedbmp|themedcss|themedgif|themedjpg|themedpng|ico|png|wdp|hdp|css|js|asf|avi|flv|m4v|mov|mp3|mp4|mpeg|mpg|rm|rmvb|wma|wmv|ogg|ogv|oga|webm|xap)$" maxSize="10" imageRenditionMaxSourcePixels="100000000" enabled="true" /> 这会将图像呈现形式的最大图像大小设置为大约 100 兆像素。

  7. 在此行中 location ,更改 属性以指定具有足够空间以适应缓存大小的目录。

    注意

    我们强烈建议您在用于存储服务器操作系统转换文件或服务器日志文件的驱动器之外的其他驱动器上指定目录。

  8. 若要在要缓存的文件类型列表中添加或删除文件类型,对于 path 属性,请修改正则表达式以包含或删除相应的文件扩展名。 如果添加文件扩展名,请确保使用管道符号 (|) 来分隔每个文件类型,如以下代码行所示。

  9. 若要更改缓存大小,请为 maxSize 键入新的数字。 以 GB 为单位表示大小,默认值为 10 GB。

    重要

    建议您不要将缓存大小设置为小于 10 GB。 设置缓存大小时,请确保指定足够大的数字以提供缓冲,该缓冲应该比估计要在缓存中存储的内容的大小至少大 20%。

  10. 若要启用 BLOB 缓存,请将 enabled 属性从 "false" 更改为 "true"

  11. 保存记事本文件,然后关闭它。

警告

保存对 web.config 文件做出的更改时,Internet Information Services (IIS) 7.0 中的 Web 应用程序会自动循环。 此循环可能会导致相应 Web 应用程序中包含的网站出现短暂服务中断,而且用户可能会丢失会话状态。 若要详细了解如何在 IIS 7.0 循环 Web 应用程序,请参阅 IIS Process Recycling(IIS 进程循环)。

配置缓存配置文件设置

网站集管理员可以在网站集级在用户界面中配置缓存配置文件,前端 Web 服务器上的管理员也可以在 Web 应用程序级进行配置。 必须在网站集级启用页面输出缓存,才可以在网站集级或 Web 应用程序级配置页面输出缓存配置文件。 如果在 Web 应用程序级启用页面输出缓存配置文件,在 Web.config 中指定的设置将用于所有页面删除缓存配置文件,并且将替代通过网站集级的用户界面输入的任何值。

注意

要使用页面输出缓存以及关联的缓存配置文件设置,您必须使用网站上的"发布"功能。

注意

内容搜索 Web 部件存在一个已知问题。 Web 部件中的 SendContentBeforeQuery 设置在使用输出缓存的页面上无法正常工作。 SharePoint Server 2013 的 2013 年 3 月累积更新解决了此问题。 有关详细信息,请参阅 Microsoft 知识库文章 2767999 Description of the SharePoint Server 2013 update: March 12, 2013(SharePoint Server 2013 更新程序说明:2013 年 3 月 12 日)。

请使用以下过程来配置用于 Web 应用程序的缓存配置文件设置。

重要

在对 web.config 文件进行更改之前,先使用不同的名称(例如,web.config1)制作一份副本,以便在文件中进行了错误更改时,可以恢复原始文件。

配置页面输出缓存配置文件设置

  1. 验证您是否具有以下管理凭据:您必须是本地计算机上的管理员组的成员,才能配置缓存配置文件设置。

  2. 打开“服务器管理器”,单击“工具”,然后单击“Internet Information Services (IIS) 管理器”。

  3. 在“Internet Information Services (IIS) 管理器”的“ 连接 ”窗格中,展开包含 Web 应用程序的服务器名称,然后展开 “站点” 以查看已创建的 Web 应用程序。

  4. 右键单击要配置基于磁盘的缓存的 Web 应用程序的名称,然后单击"资源管理器"。 Windows 资源管理器将打开,其中包含列出的选定 Web 应用程序的目录。

  5. 右键单击 web.config,单击“ 打开 ”并选择 “记事本 ”(如果系统要求查找用于打开此文件的程序)。

  6. 在 web.config 记事本文件中,找到以下行: <OutputCacheProfiles useCacheProfileOverrides="false" varyByHeader="" varyByParam="*" varyByCustom="" varyByRights="true" cacheForEditRights="false" />

  7. 若要在 Web 应用程序级别启用缓存配置文件,请将 useCacheProfileOverrides 属性从 "false" 更改为 "true"

    注意

    如果将其设置为 true,Web.config 中指定的设置将用于所有页面输出缓存配置文件。 这将替代通过网站集级的用户界面输入的任何值。

  8. 若要重写 varyByHeader 属性,请键入 .NET Framework 类库条目 HttpCachePolicy.VaryByHeaders 属性中指定的自定义参数。

  9. 若要重写 varyByParam 属性,请键入 .NET Framework 类库条目 HttpCachePolicy.VaryByParams 属性中指定的自定义参数。

  10. 若要重写 varyByCustom 属性,请键入 .NET Framework 类库条目 HttpCachePolicy.SetVaryByCustom 方法中指定的自定义参数。

  11. 若要重写 varyByRights 属性,请将值从 "true" 更改为 "false"。 这将删除用户必须对所有安全对象具有相同有效权限才能看到与任何其他用户相同的缓存页面的要求。

  12. 若要重写 属性 cacheForEditRights ,请将 cacheForEditRights 属性从 "false" 更改为 "true"。 这将绕过具有编辑权限的用户对其页面进行缓存的正常行为。

  13. 保存记事本文件,然后关闭它。

警告

保存对 web.config 文件做出的更改时,Internet Information Services (IIS) 7.0 中的 Web 应用程序会自动循环。 此循环可能会导致相应 Web 应用程序中包含的网站出现短暂服务中断,而且用户可能会丢失会话状态。 有关在 IIS 7.0 中回收 Web 应用程序的信息,请参阅 启动或停止 Web 服务器 (IIS 8)

配置对象缓存设置

对象缓存设置可在网站集级别由网站集管理员在用户界面中配置,并在默认情况下启用。 可以在前端 Web 服务器的 Web 应用程序级上配置最大缓存大小,以限制缓存将用于所有网站集的最大内存量。 例如,各个网站集可能将其对象缓存设置为 100 MB,而 Web 应用程序可能设置为 1 GB。 在此情况下,服务器上的所有缓存使用的内存将不超过 1 GB。

注意

要使用对象缓存,您必须使用网站上的"发布"功能。

使用以下过程在前端 Web 服务器上为 Web 应用程序配置对象缓存设置。

重要

在对 web.config 文件进行更改之前,先使用不同的名称(例如,web.config1)制作一份副本,以便在文件中进行了错误更改时,可以恢复原始文件。

配置对象缓存设置

  1. 验证您是否具有以下管理凭据:您必须是本地计算机上的管理员组的成员,才能配置对象缓存设置。

  2. 打开“服务器管理器”,单击“工具”,然后单击“Internet Information Services (IIS) 管理器”。

  3. 在“Internet Information Services (IIS) 管理器”的“ 连接 ”窗格中,展开包含 Web 应用程序的服务器名称,然后展开 “站点” 以查看已创建的 Web 应用程序。

  4. 右键单击要配置基于磁盘的缓存的 Web 应用程序的名称,然后单击"资源管理器"。 Windows 资源管理器将打开,其中包含列出的选定 Web 应用程序的目录。

  5. 右键单击 web.config,单击“ 打开 ”并选择“ 记事本 ”(如果系统要求查找用于打开此文件的程序)。

  6. 在 Web.config 记事本文件中,找到以下行: <ObjectCache maxSize="100" />

  7. 若要更改缓存大小,请为 maxSize 键入新的数字。 以 MB 为单位表示大小,默认值为 100 MB。

  8. 保存记事本文件,然后关闭它。

警告

保存对 web.config 文件做出的更改时,Internet Information Services (IIS) 7.0 中的 Web 应用程序会自动循环。 此循环可能会导致相应 Web 应用程序中包含的网站出现短暂服务中断,而且用户可能会丢失会话状态。 有关在 IIS 7.0 中回收 Web 应用程序的信息,请参阅 启动或停止 Web 服务器 (IIS 8)

另请参阅

概念

Cache settings operations in SharePoint Server

在 SharePoint Server 中规划缓存和性能