SharePoint 2013 工作流错误:“若要重试,请重新加载页面,然后启动工作流”

现象

启动 SharePoint 2013 工作流时,遇到警报中显示的以下错误消息:

出现错误。 若要重试,请重新加载页面,然后启动工作流。

如果选择“设置”(齿轮图标),然后选择“网站设置>工作流设置>工作流运行状况”,状态将显示为已暂停:

“工作流运行状况”页的屏幕截图,其中显示工作流状态为挂起。

原因

如果 SharePoint 2013 工作流处于当前 SharePoint 网站的挂起状态,因为一个或多个工作流超出某些限制,则会发生此错误。

解决方法

可以通过删除超出其限制的 SharePoint 2013 工作流来删除当前 SharePoint 网站的挂起。 使用“工作流设置”页,或使用 SharePoint Designer 删除工作流。

清理过程不是即时的。 完成时工作流运行状况需要一段时间,工作流运行状况会切换到 “已连接” 状态:

“工作流运行状况”页的屏幕截图,其中显示了已连接的工作流状态。

建议使用“工作流设置”页删除 SharePoint 2013 工作流。

可以使用 ShowScopeDebugInfo() 函数标识要删除的工作流。

如何运行 ShowScopeDebugInfo() 函数

  1. 在遇到工作流问题的网站上,选择“设置”(齿轮图标),然后选择“网站设置>工作流设置>工作流运行状况”。

    • 还可以从 URL 访问工作流运行状况。 示例 URL: https://contoso.sharepoint.com/sites/test/_layouts/15/WorkflowServiceHealth.aspx - 在此示例中,将 contoso 替换为您的域,并使用 SharePoint 网站的名称进行测试
  2. 从浏览器打开开发人员工具(建议使用 Microsoft Edge 或 Google Chrome)。

    • 对于 Microsoft Edge,请按 F12 键切换打开开发人员工具。
    • 对于 Google Chrome,请按 Shift+Ctrl+J 打开开发人员工具。
  3. 选择“控制台” 。

  4. 键入以下函数名称: ShowScopeDebugInfo()

    • 键入 ShowScopeDebugInfo()后,按 Enter。 它执行一个 JavaScript 函数,用于在后台打印数据。
    • 请注意 ,需要刷新工作流服务运行状况页才能从 ShowScopeDebugInfo 获取更新的数据。 ShowScopeDebugInfo 返回的信息不是实时的。 在结果更新之前稍有延迟。

    “工作流运行状况”页的屏幕截图,其中显示了工作流状态详细信息。

    示例输出:

    {
      "SupportDocument": "https://go.microsoft.com/fwlink/?linkid=847765",
      "ScopePath": "/spo/ec63b09b-9748-47ba-9018-beeadd405204/f19089ae-d6c6-4feb-be0b-ff4de40a04fc/88890858-ae38-407a-b1e7-152c7cff6fe5",
      "WorkflowEndpoint": "spo-dm3-001.workflow.windows.net",
      "WorkflowAppId": "i:0i.t|ms.sp.ext|5958c314-3699-407a-b142-2d459b5161c4@72f988bf-86f1-41af-91ab-2d7cd011db47",
      "IsThrottled": false,
      "ThrottledUntil": "",
      "ActiveMessageCount": "965436",
      "StatusDetails": "MaxTopicSize",
      "ScopeSizeInBytes": "6447069028",
      "MaxScopeSizeInBytes": "6442450944",
      "CorrelationFilterCount": "1851",
      "MaxCorrelationFilterCount": "100000",
      "ScopeUsageInfoAggregatedByWorkflow": [
        {
          "workflowName": "87effe93-5c6a-474d-8a72-0ef451ff0100",
          "workflowDisplayName": "ANewWF",
          "sizeInBytes": 0,
          "correlationFilterCount": 0
        },
        {
          "workflowName": "df26aa85-85a7-4466-a273-1775c9da38bb",
          "workflowDisplayName": "Neat2013ListWorkflow",
          "sizeInBytes": 52591272,
          "correlationFilterCount": 1827
        },
        {
          "workflowName": "fc7a63c5-ff72-42e5-87fd-3f2944f8a6ef",
          "workflowDisplayName": "Spec_Document_Approval",
          "sizeInBytes": 277327,
          "correlationFilterCount": 24
        }
      ]
    }
    
  5. 记下 输出中的 StatusDetails。 如果 存在 MaxTopicSizeMaxCorrelationFilter ,则表示当前 SharePoint 网站挂起了所有 SharePoint 2013 工作流。 “工作流服务运行状况”页显示:

    工作流已挂起

  6. 删除工作流或工作流后,将启动清理过程。 可以通过刷新工作流服务运行状况页和执行 ShowScopeDebugInfo 函数来跟踪进度。 ActiveMessageCountScopeSizeInBytesCorrelationFilterCount 将下降,具体取决于超出的限制。 ActiveMessageCount 是最慢的,可能需要几天时间才能清除,但它不会阻止。 完成清理后台作业的核心后,“工作流服务运行状况”页将不再显示 “工作流”挂起, StatusDetails 将不再具有值。

如果无法通过删除工作流来解决此问题,可以选择打开支持请求。 如果选择打开支持请求,请使用 ShowScopeDebugInfo() 函数收集有关工作流运行状况的一些附加信息。 有关 ShowScopeDebugInfo() 函数的详细信息,请参阅使用 ShowScopeDebugInfo 收集 SharePoint 2013 工作流故障排除数据。