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

如何解决Azure App Service部署槽重定向及服务异常问题?

排查Azure App Service生产槽重定向到测试槽的问题

这情况我之前碰到过好几次,大概率是部署槽的路由配置、域名绑定或者应用逻辑出了问题,结合你描述的“停测试槽生产也宕机、删测试槽生产404”的现象,咱们一步步来排查解决:

1. 先查自定义域名绑定(最常见原因)

  • 赶紧去Azure门户,打开你的App Service,分别进入生产槽和测试槽的「自定义域名」页面:
    • 生产槽应该绑定你的主业务域名(比如yourdomain.com)
    • 测试槽应该用独立的子域名(比如test.yourdomain.com)
  • 如果发现主域名绑到了测试槽上,那生产槽自然会被流量忽略,直接把绑定调整过来就行。

2. 检查部署槽的流量路由规则

  • 进入App Service的「部署槽」页面,选中测试槽后点击顶部的「流量路由」:
    • 看看是不是误把100%的流量都导向了测试槽?或者设置了错误的路由规则(比如基于Cookie的路由)导致生产请求被转发。
    • 临时修复可以先把生产槽的流量权重设为100%,测试槽设为0%,确保所有请求都走生产槽。
  • 另外如果之前做过槽交换但没完成,或者交换后没刷新配置,也可能出现这种资源混淆的情况,可以尝试重新交换一次(记得先备份配置)。

3. 排查应用内的硬编码重定向

  • 虽然你说Kudu里的环境变量和连接字符串是对的,但还是要确认.NET Core应用里有没有硬编码的重定向逻辑:
    • 打开Kudu调试控制台(https://<你的应用名>.scm.azurewebsites.net/DebugConsole),查看Startup.cs/Program.cs或者appsettings.Production.json,有没有写死跳转到测试槽域名的代码。
    • 比如有没有类似app.UseHttpsRedirection(options => { options.RedirectStatusCode = StatusCodes.Status307TemporaryRedirect; options.Host = new HostString("test.yourdomain.com"); });的错误配置。

4. 检查默认域名的映射问题

  • 如果用的是Azure自带的.azurewebsites.net域名,确认生产槽的默认域名是yourapp.azurewebsites.net,测试槽是yourapp-test.azurewebsites.net:
    • 如果访问生产域名跳转到测试域名,可能是Azure内部的域名映射出了问题,这种情况可以尝试重启生产槽,或者清除App Service的缓存(在Kudu的「Tools」->「Clear Cache」)。

5. 解释“停测试槽生产宕机”的现象

  • 同一App Service的部署槽本来就共享同一个应用服务计划,但停止一个槽不应该影响另一个。出现这种情况,大概率是你的生产槽代码依赖了测试槽的资源:
    • 比如生产槽的API在调用测试槽的接口,或者共用了某个只有测试槽才启动的服务?仔细检查应用的业务逻辑,有没有跨槽的资源调用。

紧急恢复生产的步骤

如果现在需要快速恢复:

  1. 把测试槽的流量权重设为0%,确保所有请求都流向生产槽
  2. 重启生产槽,清除应用缓存
  3. 确认生产槽的域名绑定完全正确,没有指向测试槽的记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:18:07