You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Microsoft Graph API webhook框架发送通知存在不一致问题

Outlook Webhook通知漏发问题排查

我目前可以接收并处理通知,但该机制极其不可靠。举个实例:假设我将Outlook已删除文件夹中的10封邮件移动到收件箱,我订阅了删除和创建两类更新,按预期应该收到20条通知,但实际只会收到18到20条不等,仿佛全看*“运气”*,因此会出现webhook完全未推送通知的邮件遗漏情况。

为了补救该问题,我配置了针对遗漏通知的Lifecycle webhook,但它只会在有消息未推送时偶尔触发,唯一的解决方案只能是执行全量同步,这完全违背了使用webhook的初衷。

我已经完成的排查操作如下:

  • 通过App Insights和应用日志确认通知没有被送达
  • 配置了Lifecycle webhook辅助识别问题
  • 配置了可用的限流机制和自动续订订阅功能

目前我倾向于认为该框架没有按照预期工作,也欢迎大家指出我存在的问题。
提前感谢大家的协助。

补充(回调函数未被触发)

[FunctionName("MessageNotificationHook")]
public async Task<IActionResult> Run(
 [HttpTrigger(AuthorizationLevel.Anonymous, "get", "delete", "post", "put", "patch", Route = null)] HttpRequest req,
 [Queue(Routes.CommandQueue), StorageAccount("AzureWebJobsStorage")] ICollector<ImportMailMessageCommand> queueOutput,
 [Queue(Routes.CommandQueueDev), StorageAccount("AzureWebJobsStorage")] ICollector<ImportMailMessageCommand> queueOutputDev)
{
    var validationToken = req.Query["validationToken"];
    if (!string.IsNullOrEmpty(validationToken))
    {
        logger.LogInformation($"[{LOGGING_TAG}] {validationToken}");
        return new ContentResult { Content = validationToken, ContentType = "text/plain" };
    }

    logger.LogInformation($"[{LOGGING_TAG}] called.");
    // _ = Task.Run(() => ProcessNotification(queueOutput, queueOutputDev, req));

    return new AcceptedResult();
}

内容的提问来源于stack exchange,提问作者kvn73

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:06:04