如何为ASP.Net Web应用自定义Azure平台的403 Forbidden错误页面
ASP.NET 自定义Azure 403 Forbidden错误页教程
你当前看到的默认Azure 403错误页如下:
按以下两个维度配置即可实现自定义错误页:
1. 应用端配置
1.1 ASP.NET Framework 4.x版本
修改Web.config的system.webServer节点,新增自定义错误页规则:
<system.webServer> <httpErrors errorMode="Custom" existingResponse="Replace"> <!-- 移除默认403配置 --> <remove statusCode="403" subStatusCode="-1" /> <!-- 替换为自定义页面,path替换为你自己的错误页路径 --> <error statusCode="403" path="/CustomErrors/403.html" responseMode="File" /> <!-- 如果是MVC项目需要跳转到控制器Action,用如下配置 --> <!-- <error statusCode="403" path="/Error/Forbidden" responseMode="ExecuteURL" /> --> </httpErrors> </system.webServer>
1.2 ASP.NET Core/.NET 6+版本
第一步:在Program.cs中注册状态码中间件
var builder = WebApplication.CreateBuilder(args); // 此处省略你原有服务注册逻辑 var app = builder.Build(); // 放在其他中间件注册的最前面 app.UseStatusCodePagesWithReExecute("/Error/{0}"); // 此处省略你原有中间件配置 app.Run();
第二步:新增错误处理控制器和视图
新建ErrorController.cs,添加403对应的处理逻辑:
public class ErrorController : Controller { [Route("/Error/{statusCode}")] public IActionResult Index(int statusCode) { if(statusCode == 403) { // 返回你自定义的403视图 return View("403"); } // 其他状态码处理逻辑 return View("Error"); } }
在Views/Error目录下新增403.cshtml自定义错误页文件即可。
2. Azure App Service配置(必须配置,否则会被Azure默认错误页覆盖)
- 登录Azure门户,进入对应的App Service资源页
- 左侧菜单找到「配置」->「常规设置」,确认运行时版本和你应用的.NET版本完全匹配
- 切换到「应用程序设置」标签,添加键值对:
WEBSITE_LOAD_CUSTOM_ERRORS=1 - 保存配置后重启App Service生效
注意事项
- 自定义错误页文件的属性要设置为「如果较新则复制」,确保发布时会被包含在部署包中
- 测试时使用浏览器无痕模式,避免本地缓存旧的错误页
- 如果你的应用前面配置了Azure CDN/Front Door,还需要在对应的CDN/Front Door配置中添加自定义403错误页规则
内容的提问来源于stack exchange,提问作者Sharad
相关产品推荐
相关产品推荐

