c# - Microsoft Graph API - Exchange Online Messages 调用返回 ServiceUnavailable
问题描述
我正在使用 Microsoft Graph API 从 Office365 中的 Exchange 获取消息。但是,对于某些文件夹,我似乎会遇到间歇性异常。
我们正在使用什么:
Microsoft.Graph 版本 3.9.0 - 适用于 .Net 的 Microsoft Graph 客户端库
Microsoft.Graph.Core 版本 1.21.0 - 适用于 .Net 的 Microsoft Graph 核心客户端库
这是正在使用的调用:
'GET /v1.0/users/{id}/mailFolders/{id}/messages'
这是错误(ServiceUnavailable 与 UnknownError 作为内部异常):
状态代码:ServiceUnavailable Microsoft.Graph.ServiceException:代码:UnknownError 消息:处理响应时出错。内部错误:AdditionalData:日期:2020-08-04T13:55:33 request-id:** ClientRequestId:**
代码:UnknownError 消息:处理响应时出错。内部错误:AdditionalData:日期:2020-08-04T13:55:33 request-id:** ClientRequestId:**
我试过的:
- 节流:
这些通常是我们在节流时会看到的错误。但是,在这种情况下,似乎没有应用节流的迹象。结果中没有返回任何“退避”时间。对不同文件夹的其他请求也可以正常返回。通过应用我们自己的“退避”时间(介于 5 分钟到 20 分钟之间似乎也没什么区别)。
- Beta 端点:
上面发布的调用显示使用了 /v1.0。我们也切换到 /beta 端点,没有任何区别。
- 检索到的邮件数量:
Graph 允许我们一次检索多达 999 封邮件。我们已将其一直减少到一次邮件或 2 封邮件,但它仍然返回相同的错误。
- 三角洲代币:
我们还尝试切换到使用 delta 令牌来检索邮件。这也返回相同的错误。
- 图降级:
希望最近几个版本有一些不同,我们降级了 Graph。没有区别。
- 检查本地同步问题:
我在过去(很久以前)注意到,当对具有潜在本地同步问题的文件夹执行此调用时,这与返回的错误响应类型相同。在这种情况下,没有理由相信这些是本地同步问题。
- 额外的:
在设置 httpProvider 时,我也删除了默认的重试处理程序。我已经看到使用默认的重试处理程序,它会自动捕获“ServiceException”并进行内部重试(不遵守回退(不是有任何)),并会导致 tooManyRetries 或超时(隐藏实际问题)。通过删除默认重试处理程序,我们可以看到服务器返回的实际“ServiceException”错误。
什么时候:
根据我们的遥测数据,自 6 月 11 日至 13 日左右以来,这种情况似乎开始更加频繁地发生。在此之前,我们没有遇到任何问题。这些请求有时会起作用,但它们很少而且介于两者之间。
这对我们来说是一个相当大的问题,所以任何建议将不胜感激。我可以记录此内容的任何特定 Microsoft 支持渠道也会有所帮助。
提前致谢。
解决方案
推荐阅读
- java - 如何杀死之前由 Web 驱动程序打开的浏览器实例(chrome)
- r - R闪亮选择选定的事件
- excel - Excel:按特定名称对列进行排序,而不是将排序项的总和添加到分隔单元格
- c - 如何使用指针将结构数组传递给函数?
- angular - 我正在使用 http.post 来获得响应,并设置我的 div [innerHTML]="response.html",但 angular2 正在从 html 页面中删除 javascript
- webpack - webpack 4 - 生产模式 - UglifyJs 错误 - 意外字符'@'
- python - 关闭弹出消息时的PyQt5运行时错误
- java - 复杂类型中序列的 JAXB 外部绑定文件 xpath
- javascript - 如何在 Reactjs 中删除元素 onclick?
- aws-lambda - 通过 AWS greengrass 核心进行设备通信