Azure Front Door(经典版)对接App Service后出现404错误求助
问题排查与解决方案
原因1:Front Door未正确传递原始主机头
使用Front Door代理请求时,默认会将后端App Service的主机头(mywebapp.azurewebsites.net)传递给应用,但你的Web应用可能依赖Front Door的主机头(myappfrontdoor.azurefd.net)生成正确的回调地址,主机头不匹配会导致认证流程跳转错误,最终触发404。
解决步骤:
- 登录Azure门户,进入你的Front Door(经典版)实例
- 找到对应路由规则并编辑
- 在「后端池」配置区,将「自定义主机头」设置为
myappfrontdoor.azurefd.net - 保存配置并等待生效
原因2:App Service未处理X-Forwarded-*头或未启用ARR Affinity
Web应用若未识别Front Door传递的X-Forwarded-For、X-Forwarded-Proto等头信息,会生成基于App Service原始域名的回调URL,引发认证后跳转异常。
解决步骤:
- ASP.NET Core应用:在
Program.cs中添加转发头中间件配置:app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto }); - 进入App Service的「配置」>「常规设置」,开启ARR Affinity
- 可选:在App Service「应用设置」中添加
WEBSITE_HOSTNAME,值为myappfrontdoor.azurefd.net
原因3:AAD应用注册重定向URI或应用配置问题
即便已添加Front Door的重定向URI,仍可能存在路径匹配、配置不匹配的问题。
解决步骤:
- 检查AAD应用注册中的重定向URI,确保
https://myappfrontdoor.azurefd.net/signin-oidc完全匹配(注意大小写、斜杠等细节) - 对于ASP.NET Core应用,确认
appsettings.json中OpenIdConnect配置的CallbackPath为/signin-oidc,Authority指向正确的AAD租户 - 使用隐身窗口测试,避免旧认证会话干扰
原因4:Front Door路由规则路径匹配错误
路由规则的路径匹配模式错误,会导致请求未正确转发到App Service根路径,触发错误页面。
解决步骤:
- 检查Front Door路由规则,将路径匹配设置为
/*(匹配所有路径) - 确认路由规则的「转发协议」设置为
HTTPS only,与App Service协议一致 - 测试直接访问
https://myappfrontdoor.azurefd.net/home这类具体路径,验证转发是否正常
内容的提问来源于stack exchange,提问作者Lucky
相关产品推荐
相关产品推荐

