MS Graph API 仅在某些 IP 上返回混合集成错误

2024-01-04

我们有一个使用 MS Graph API 与客户的电子邮件/日历集成的应用程序。其中一位采用混合设置的客户(客户 A)报告了问题。所有用户突然发现电子邮件集成不起作用。我们使用生产应用程序凭证和不同环境(本地、开发云 AWS、登台云 GCP、生产云 GCP)和有效用户令牌对 MS Graph API 执行了几次测试调用(端点 /me/sendMail)。以下是结果和奇怪的行为:

  1. 好的。如果我们从所有环境中调用我们自己的测试帐户(Office365,非混合) - 一切都会正常。
  2. 好的。如果我们从所有环境中对客户 B 帐户(Office365,非混合)进行调用 - 一切正常。
  3. 好的。如果我们从本地、开发云 AWS 环境对客户 A 帐户(混合设置)进行调用 - 一切都正常。
  4. 超级奇怪。如果我们从暂存云 GCP、生产云 GCP 环境中对客户 A 帐户(混合、Exchange 2016 设置)进行调用 - 我们会收到 404 和以下错误。

{“error”:{“code”:“MailboxNotEnabledForRESTAPI”,“message”:“REST API is not yet supported for this mailbox.“}}

客户的 IT 部门声称他们的日志中没有与此问题相关的错误。他们按照 MS 的建议做了一切https://learn.microsoft.com/en-us/graph/hybrid-rest-support#requirements-for-the-rest-api-to-work-in-hybrid-deployments https://learn.microsoft.com/en-us/graph/hybrid-rest-support#requirements-for-the-rest-api-to-work-in-hybrid-deployments

Update:

经过更多检查后发现,当特定 MS 数据中心提供请求时,我们会收到 404:

以下是 404 的响应标头参数:

x-ms-ags-diagnostic {"ServerInfo":{"DataCenter":"英国南部","Slice":"SliceC","Ring":"3","ScaleUnit":"000","RoleInstance": “AGSFE_IN_11”}}

x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"美国中部","Slice":"SliceC","Ring":"2","ScaleUnit":"002","RoleInstance" :"AGSFE_IN_14"}}

我们得到了 201(成功):

x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"西欧","Slice":"SliceC","Ring":"5","ScaleUnit":"003","RoleInstance" :"AGSFE_IN_52"}}


我会尝试使用 MS Graph explorer 或 POSTMAN 隔离问题,看看是否仍然可以重现该问题(使用相同的 Graph API 调用)。如果答案是“是”,那么我将向 Microsoft 提交支持票证,以便他们可以验证混合需求的配置(按照他们的定义)是否存在任何问题、API 是否存在任何问题或 IP 是否存在任何问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MS Graph API 仅在某些 IP 上返回混合集成错误 的相关文章

随机推荐

  • 如何在不运行测试的情况下获取所有标签和黄瓜场景

    我想以某种方式获取我在项目中使用的所有标签的列表 并获取我在项目中没有运行测试的黄瓜场景的所有名称 有人可以帮助我我该怎么做吗 根据 mpkorstanje的建议 您可以为此创建一个自定义插件 public class DryRunPlug
  • 如何测试MySQL事务?

    我有一个关于测试事务中的查询的问题 我使用 MySQL 事务已经有一段时间了 每次我这样做时 我都会使用类似的东西 doCommit true error mysql query BEGIN repeat this part with th
  • Object方法中的“this”关键字指向Window

    var name The Window var object name My Object getNameFunc function return function return this name console log object g
  • 如何使用 Reactor 3.x 将 List 转换为 Flux

    我有一个异步调用节俭接口 public CompletableFuture
  • 有没有办法将引用的 MonoBehaviours 序列化为 JSON?

    假设我有一个名为ObjectA其中包含两个对象 ObjectsB and ObjectC System Serializable public ClassA public ClassB classB public ClassC classC
  • 在 LLDB 中查看数组:相当于 Xcode 4.1 中 GDB 的“@”运算符

    我想查看指针指向的元素数组 在 GDB 中 这可以通过使用运算符 将指向的内存视为给定长度的人工数组来完成 pointer length where length是我要查看的元素数量 上述语法在 Xcode 4 1 提供的 LLDB 中不起
  • 贪心算法的实现

    您知道谁知道您希望n 个人中的谁来参加聚会 假设 知道 是对称的 如果我认识你 你就认识我 你进一步要求 你希望每个人在聚会上至少有 5 个新朋友 而且 为了让没有人感到太孤立 每个人应该在聚会上已经认识至少 5 个人 您的原始名单可能不满
  • 415 尝试在 Jax-RS 球衣中发送 FormData() 时的状态

    我正在尝试使用 jquery ajax 发送附加到 FormData 的文件 在参考了一些 mozilla 和 IBM 的文档后 我得出了以下结论 阿贾克斯代码 var sessionId cookie referenceId var my
  • 在 forEach 循环中访问 this 会导致未定义

    我正在类的方法之一中使用 forEach 迭代数组 我需要访问 forEach 内的类的实例 但是this未定义 var aGlobalVar function use strict aGlobalVar thing function th
  • 编写轮询 Windows 服务

    I usually write Windows services in C but I m giving it a go in F For a polling serivce like this one I ordinarily use a
  • Visual Studio Code (vscode) 中文件扩展名的自动缩进规则?

    有没有办法告诉 Visual Studio Code 对给定的文件扩展名应用特定的自动缩进规则 我们当前的settings json 文件是 editor tabSize 4 editor insertSpaces true files a
  • Kotlin + Dagger2:如果没有 @Inject 构造函数或 @Provides- 或 @Produces- 注解的方法,则无法提供

    我收到以下错误 错误 8 1 错误 如果没有 Inject 构造函数或 Provides 或 Produces 注解的方法 则无法提供 java lang String 我一直试图制作一个提供两个合格字符串的模块 这是匕首的简化设置 Sin
  • 从 st_mtime、st_ctime、st_atime 打印时的日期相同

    因此 我应该打印目录的访问 修改和创建的日期 但它们似乎都是相同的日期 这是我的代码 struct tm date struct stat fileStat if options 0 1 options 1 0 options 2 0 op
  • 一个项目中的IdentityServer4和Web Api身份验证失败

    我一直在寻找我在这里遇到的问题 我试图从 SO 中的问题中找到答案 但可以找出问题所在 所以我非常绝望的自动提款机 所以在我的解决方案中我们有 3 个项目 API 生产API资源 身份服务器4 身份服务器4 用于访问 IdentitySer
  • 使用 VBA 将粗体文本插入 Word

    我编写了一个小脚本 将某些 Excel 单元格值导出到 Word 中 但是 某些插入内容需要加粗 似乎没有一个简单的方法可以做到这一点 此代码循环遍历记录并将它们添加到 Word 文档中 Do While intRow lt intTota
  • 如何结束我的去电。

    with statrtActivity callIntent 通话接通 然后我必须等待几秒钟并自动结束 为了结束我的通话 我采取了 mycalss 扩展 Broadcastreceiver 然后在那onreceive 我实现了 在该方法中
  • ASM x86 FASM 中的函数参数

    如何将参数传递给 Assembly 中的函数 我确实推送了最后一个参数 推送了第二个参数 推送了第一个参数 但我无法访问其中的参数Meh功能 我正在做的事情使程序崩溃了 format PE console Format PE OUT GUI
  • C# 是否将值传递给 Lambda?

    我有一些代码 int count 0 list ForEach i gt i SomeFunction count 这似乎不会增加计数 这里count是按值传递的吗 如果我在 lambda 中使用 有什么区别吗 int count 0 li
  • 不同通道上不求和的卷积层 - Keras

    假设我有 5x5x3 图像 并且每个通道都有不同的滤波器 例如 3x3x3 首先 在 Cov2D 中 滤波器中的每个内核分别应用于输入层中的三个通道 给出 3x3x3 无填充和步幅 1 然后将这三个通道相加 按元素相加 给出 3x3x1 我
  • MS Graph API 仅在某些 IP 上返回混合集成错误

    我们有一个使用 MS Graph API 与客户的电子邮件 日历集成的应用程序 其中一位采用混合设置的客户 客户 A 报告了问题 所有用户突然发现电子邮件集成不起作用 我们使用生产应用程序凭证和不同环境 本地 开发云 AWS 登台云 GCP