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

Azure Web App(API)因Always On特性突发404错误,求原因与最优方案

API每5分钟出现404的原因分析与解决方案

核心原因确认

Azure App Service的Always On特性默认每5分钟会向站点根路径(/)发起请求,用于保持应用实例活跃。如果你的API根路径未配置有效端点,就会返回404错误。

至于为何之前数月无此类日志,可能的触发因素包括:

  • Always On特性是近期才启用的(可能是手动开启或Azure后台默认配置变更)
  • 日志采集规则调整:之前的日志系统未捕获健康检查类请求,最近才纳入采集范围
  • API日志级别变更:原本只记录业务请求,现在开启了4xx状态码的日志记录

两种解决方案对比

1. URL重写(无需代码变更)

通过服务器配置将根路径请求转发至已有的健康检查端点:

  • 操作示例(ASP.NET):修改web.config添加重写规则
    <rewrite>
      <rules>
        <rule name="Always On Redirect" stopProcessing="true">
          <match url="^$" />
          <action type="Redirect" url="/health" />
        </rule>
      </rules>
    </rewrite>
    
  • 优势:快速生效,无需改动API代码,不影响现有业务逻辑
  • 劣势:依赖服务器配置,后续更换部署环境时需重新配置

2. 添加根端点(代码变更)

在API根路径(/)添加一个极简的健康检查接口:

  • 操作示例(ASP.NET Core):
    app.MapGet("/", () => Results.Ok("API is running"));
    
  • 优势:符合RESTful规范,无环境依赖,后续迁移无需额外调整
  • 劣势:需要修改代码并重新部署API

实操建议

  1. 先锁定原因:
    • 查看App Service的诊断日志(日志流或存储日志),确认每5分钟的404请求是否来自Azure内部IP,且请求路径为/
    • 检查App Service常规设置中Always On的启用状态,确认是否为开启状态
  2. 方案选择:
    • 若暂时不想改动代码,优先使用URL重写方案
    • 若允许代码变更,添加根端点是更长期、更稳妥的方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 11:55:13