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

Azure静态Web应用查询Durable Function执行状态返回400错误

问题分析与解决方案

核心问题

你遇到的400错误源于**Azure静态Web App与Function App关联时自动启用的App Service Authentication(Easy Auth)**拦截了Durable Function的状态查询端点请求,即便配置了CORS,认证拦截仍会导致请求失败。本地环境正常是因为未启用Easy Auth,请求不受限制。

具体解决方案

1. 排除Durable Task Webhook路径的认证拦截

在Function App配置中让Easy Auth跳过Durable Task的状态查询路径:

  • 进入Azure Portal,打开你的Function App
  • 左侧菜单选择「Authentication」
  • 在「Authentication settings」区域找到「Excluded paths」
  • 添加路径:/runtime/webhooks/durabletask/*
  • 保存配置

这个操作会让Easy Auth不拦截所有Durable Task相关的webhook请求,前端轮询就能正常访问状态查询端点。

2. 确认CORS配置的完整性

确保Function App的CORS配置正确覆盖你的静态Web App:

  • 进入Function App的「CORS」设置
  • 添加静态Web App的完整Origin:https://mywebapp.azurestaticapps.net
  • 确保「Allowed methods」包含GET(轮询使用GET请求)
  • 无需勾选「Allow credentials」(你的代码未涉及凭证携带场景)

3. 验证状态查询URL的有效性

检查前端获取的pollingUrl是否包含正确的code参数(Function Key):

  • 前端打印pollingUrl,确认URL中的code参数存在且有效
  • 你的Durable Function客户端代码中CreateCheckStatusResponse的调用逻辑正常,无需调整

额外排查点

  • 打开浏览器开发者工具,查看400请求的Response Body,里面会包含具体错误信息(比如「Invalid authentication token」),可进一步确认问题根源
  • 确保Durable Function扩展版本为最新,避免版本兼容性问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 16:40:15