Azure App Service中自定义错误重定向页面无法正常工作求助
解决Azure App Service中自定义错误设置失效的问题
我之前在Azure App Service上折腾自定义错误页面时,也碰到过和你一模一样的情况——改了web.config的<customErrors>和<deployment>节点完全没效果,毕竟Azure App Service的运行环境和本地IIS确实有差异,给你几个亲测有效的排查和解决步骤:
先检查Azure门户的内置错误配置
Azure App Service有自己的错误页面管控逻辑,不是只看web.config。登录Azure门户,找到你的应用服务:- 进入「配置」>「常规设置」,确认「HTTP版本」选择的是
1.1或2.0(有些旧版本配置可能不兼容); - 切换到「错误页面」选项卡,看看是否开启了「自定义错误」,如果之前在这里设置过全局错误页面,会覆盖web.config的配置。
- 进入「配置」>「常规设置」,确认「HTTP版本」选择的是
确认web.config的节点位置和结构
一定要保证配置节点放在正确的层级,很多时候失效都是因为节点位置错了:<configuration> <!-- deployment节点要放在configuration根节点下 --> <deployment retail="false"/> <system.web> <!-- customErrors必须在system.web节点内 --> <customErrors mode="Off" defaultRedirect="Error.aspx"/> </system.web> </configuration>另外,如果你是ASP.NET Core应用,
<customErrors>已经被废弃了,要改用中间件处理:// 在Program.cs中添加 app.UseExceptionHandler("/Error");排查Error.aspx页面本身的问题
有时候不是customErrors没生效,而是你的Error.aspx页面本身无法正常访问:- 直接访问
https://你的应用域名/Error.aspx,看看能不能打开; - 检查页面的权限设置,确保App Service的运行身份(比如
AppPoolIdentity)有访问该页面的权限; - 如果Error.aspx里有代码逻辑,确认它不会抛出新的错误,否则会陷入错误循环。
- 直接访问
开启详细日志定位根本原因
开启Azure的详细错误日志,能帮你找到真正的问题:- 进入应用服务的「监控」>「应用服务日志」;
- 开启「详细错误日志」(可以选择存储在文件系统或Blob),设置保留时间;
- 触发一次错误,然后通过「高级工具(Kudu)」>「Debug console」>「LogFiles」目录查看详细错误日志,里面会记录customErrors是否被触发、有没有路径错误等信息。
检查部署过程中的配置覆盖
如果你用CI/CD工具(比如Azure DevOps、GitHub Actions)部署,要确认部署配置没有修改web.config:- 比如Azure DevOps的发布任务中,是否开启了「替换web.config中的参数」,如果有,可能会把你的customErrors设置覆盖掉;
- 检查发布配置文件(比如
Web.Release.config),有没有针对release环境修改customErrors的mode。
内容的提问来源于stack exchange,提问作者lokanath das
相关产品推荐
相关产品推荐

