Azure非生产部署槽访问异常:跳转至生产槽并报开发模式错误
ASP.NET 6 MVC Azure部署槽访问问题排查方案
核心问题定位
master部署槽可正常构建、与生产槽交换生效,但访问其URL时跳转至生产URL并显示环境模式错误,说明存在重定向逻辑异常或环境变量未正确生效,或槽位路由配置未落实。
排查步骤
检查代码重定向逻辑
排查Program.cs/Startup.cs中的URL重写规则、控制器内的Redirect/RedirectToAction方法,确认是否硬编码了生产域名的跳转逻辑。尤其注意强制HTTPS重定向、域名绑定相关的代码,避免固定指向生产地址。确认槽位环境变量优先级
Azure App Service中,槽位级配置会覆盖应用级别和代码内配置:- 进入master槽的配置 > 应用程序设置
- 确保
ASPNETCORE_ENVIRONMENT设置为Development,且勾选部署槽位设置(避免与生产槽共享该配置)
注意:
launchSettings.json仅在本地调试生效,部署到Azure后不会读取该文件,无需修改。验证流量分配有效性
- 在部署槽页面将master槽的流量权重设为100%
- 使用浏览器开发者工具查看请求响应头:
- 检查
X-ASPNETCORE-ENVIRONMENT是否为Development - 确认
X-SITE-DEPLOYMENT-ID与master槽的部署ID一致,确保请求确实路由到master槽
- 检查
查看具体错误日志
错误提示仅为通用信息,需获取具体异常:- 进入master槽的监控 > 日志流实时查看日志
- 或通过Kudu工具(
https://your-app-master.scm.azurewebsites.net)访问D:\home\LogFiles\AspNetCore目录,查看详细的ASP.NET Core日志文件
检查自定义域名配置(若有)
若为master槽绑定了自定义域名,需确认:- 域名解析记录正确指向master槽的Azure临时域名
- SSL证书已正确绑定到master槽,避免因证书问题触发跳转
重置槽位部署
若配置缓存导致问题,可删除master槽重新创建,或重新触发CI/CD部署,确保最新代码与配置完全生效
内容的提问来源于stack exchange,提问作者tyler4130
相关产品推荐
相关产品推荐

