文档来源:避免在 SharePoint Online 中受限或遭屏蔽

什么是限制?

SharePoint Online 使用限制来维护 SharePoint Online 服务的最佳性能和可靠性。限制会限制用户操作或并发调用数量(通过脚本或代码),以防止资源的过度使用。

也就是说,用户很少在 SharePoint Online 中被限制。这项服务非常强大,并且设计为具有极高的处理量。如果您被限制,99% 都是因为自定义代码。这并不是说不会被其他方式限制,只是那些方式并不常用。例如,您启动了 10 台计算机并在这 10 台计算机上均运行同步客户端。每台计算机上同步 1TB 内容。这可能会使您被限制。

限制如何发生

在 SharePoint Online 中被限制时会发生什么?

当用户超过使用限制时,SharePoint Online 会限制该用户帐户发出的任何进一步请求,但通常只是短时间内。在用户限制的有效期内,将限制该用户的所有用户操作。

  • 对于用户直接在浏览器中执行的请求,SharePoint Online 会将您重定向到限制信息页面,请求将失败。

  • 对于所有其他请求(包括 CSOM 或 REST 调用),SharePoint Online 将返回 HTTP 状态代码 429(请求过多),请求将失败。

如果进程继续超过使用限制,SharePoint Online 可能完全阻止该进程;在这种情况下,将看不到任何成功的请求,我们将在 Office 365 消息中心通知您发生阻止。

应用程序限制

除了用户帐户的限制,限制还适用于每个应用程序。 SharePoint Online 中的每个应用程序都具有自己的可用资源,但针对同一租户运行的多个应用程序最终将共享同一资源存储段,在极少数情况下会导致速率限制。 在这些情况下,SharePoint Online 会尝试将交互式用户请求优先于后台活动执行。

SharePoint Online 中常见的限制场景

导致 SharePoint Online 中出现用户限制最常见的原因是以太高的频率执行太多操作的客户端对象模型 (CSOM) 或代表性状态传输 (REST) 代码。

  • 突发通信

    针对 SharePoint Online 的常态负载或重复性的复杂查询必须进行优化以降低影响。 未能按照扫描应用程序的最佳实践 来批量处理文件可能会导致限制。

    • 例如,将文件迁移到 SharePoint Online 之后,您运行自定义 CSOM 或 REST 脚本以更新文件上的元数据。CSOM/REST 脚本以极高的频率更新大量文件,这将触发限制。与此类似,使用 REST 服务的自动完成 UI 小部件在每个最终用户操作中向列表发出太多的调用,也可能导致限制,具体取决于哪些其他操作也在同时消耗资源。
    个别限制
  • 无比拥挤的通信

    单个进程在很长一段时间内持续大大超出限制。

    • 您使用 Web 服务构建同步用户配置文件属性的工具。该工具将根据您的业务线 (LOB) 人力资源 (HR) 系统中的信息更新用户配置文件属性。该工具以太高的频率发出调用。

    • 您在 SharePoint Online 上运行负载测试脚本但受到限制。SharePoint Online 上不允许进行负载测试。

    • 例如,您在 SharePoint Online 上对您的工作组网站进行了自定义设置,方法是在主页上添加了一个状态指示器。此状态指示器频繁更新,这会导致页面向 SharePoint Online 服务发出太多调用,从而触发限制。

    稳定的限制

为什么不能告诉我确切的限制?

设置并发布精确限制限制看似非常简单,但实际上会导致更严格的限制。 我们不断监视 SharePoint Online 上的资源使用状况。 根据使用情况,我们将微调阈值,以便用户可以使用最大数目的资源,而不会降低 SharePoint Online 的可靠性和性能。 这就是为什么 CSOM 或 REST 代码遵循 retry-after(重试间隔)标头值是如此重要的原因;它允许您在任何给定的一天内尽可能快地运行代码,然后如果它受到限制,将仅获得“足够”的资源。 本主题后面的代码示例演示如何使用 retry-after 标头。

处理限制的最佳实践

  • 减少每个请求的操作数

  • 减少调用频率

  • 修饰流量以展现身份(有关详细信息,请参阅下面有关流量修饰最佳实践的部分)

  • 利用 retry-after 标头

如果遇到限制,我们需要利用 retry-after 标头以确保短的延迟时间,直到限制解除。

设置重试间隔是避免限制的最快捷方式,因为 SharePoint Online 动态确定适当的重试时间。 换句话说,积极的重试对您工作有不利影响,因为即使调用失败,它们仍计 入使用率限制。 遵循重试标头将确保最短的延迟。

有关 SharePoint Online 活动监视方式的详细信息,请参阅使用 SharePoint Online 诊断性能问题

有关 Microsoft 云上对限制的更广泛探讨,请参阅限制模式