向sharepoint excel工作簿表添加行时出错MaxRequestDurationExceeded



这是完整的错误

{
"error": {
"code": "MaxRequestDurationExceeded",
"message": "We're sorry. We couldn't finish what you asked us to do because it was taking too long.",
"innerError": {
"code": "gatewayTimeoutUncategorized",
"message": "The service wasn't able to complete the request within the time limit.",
"innerError": {
"code": "MaxRequestDurationExceeded",
"message": "We're sorry. We couldn't finish what you asked us to do because it was taking too long."
},
"date": "2020-11-24T02:48:23",
"request-id": "a3f533ea-3d8e-4bb6-aa71-4eaf10b79364",
"client-request-id": "a3f533ea-3d8e-4bb6-aa71-4eaf10b79364"
}
}
}

当我试图将记录添加到excel文件中时,我收到了一条有点不清楚的错误消息。起初,我每个帖子都发送5k到8k的excel记录,所以我想,因为我发送的太多了。我所做的是每个帖子只发送3k条记录,但我还是收到了这个错误。

我认为excel共享点文件需要一些时间来刷新新发布的数据,所以我在发布命令后添加了3分钟的时间延迟,但我得到了错误

我也试过在邮递员那里,我只发送了一份测试记录,但我仍然收到同样的错误,不知道为什么。

经过进一步检查,sharepoint中的工作簿大小似乎有限制。50mb是限制,我们的excel文件已经达到40mb。它已经很接近了,但我还有10 mb要用,所以应该不会有任何问题。

目前excel sharepoint文件有100多万条记录

**是的,我们可能不得不重新考虑将sharepoint excel文件视为数据库,但目前我想看看是什么原因导致了上述错误,因为它并没有提供太多细节

编辑:其他详细信息,早些时候我检查时,有几个例子表明测试记录实际上添加到了excel文件中,但响应仍然是提到的错误消息

此外,我没有发布代码,因为它上周工作,所以我认为错误与我的代码无关,而是由于一些其他变量,我不知道

  • 听起来这个问题是由于工作簿在线打开excel检查是否有任何改进所花费的时间超过(默认设置的时间(而引起的
  • 检查您提到的受影响的excel文件是否可以在excel客户端中打开?检查是否有很多空列。您注意到,包含百万个单元格的空列可能导致了此处的问题。因此,您尝试删除、保存并运行API调用。还建议,当工作簿的单元格样式、形状或格式太多时,可能会导致Excel Online打开文件的时间比平时长很多倍
  • 共享了文档

sharepoint现在似乎允许向excel文件添加任何内容,因为它已经有了大量的记录。按照这些限制:

https://support.microsoft.com/en-us/office/excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3

https://support.microsoft.com/en-us/office/file-size-limits-for-workbooks-in-sharepoint-9e5bc6f8-018f-415a-b890-5452687b325e

但端点没有返回信息更丰富的错误消息,这仍然有点奇怪。

还有一件事需要考虑,如果您在地址范围内使用补丁或post。根据我的观察,补丁和post相比相当慢。更准确地说,根据我的经验,更新范围比插入范围慢2x-10倍。以下是我所指的两个API的链接。

https://learn.microsoft.com/en-us/graph/api/range-update?view=graph-rest-1.0&tabs=http
https://learn.microsoft.com/en-us/graph/api/range-insert?view=graph-rest-1.0&tabs=http

最新更新