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

如何在ASP.NET Core 6.0中不使用DeveloperExceptionPageMiddleware

ASP.NET Core 6 禁用自动注入的DeveloperExceptionPageMiddleware方案

共有三种可行的实现方式:


1. 直接关闭自动注册逻辑(最推荐)

系统自动注入DeveloperExceptionPageMiddleware的逻辑可通过配置直接关闭,无需后续修改中间件管道:

  • 在var builder = WebApplication.CreateBuilder(args);之后,添加代码builder.WebHost.UseDeveloperExceptionPage(false);,即可关闭所有环境下的自动注册逻辑。
  • 关闭后可自行注册全局错误处理中间件,实现全环境统一的错误响应,完整示例代码如下:
var builder = WebApplication.CreateBuilder(args);
// 关闭DeveloperExceptionPageMiddleware自动注册
builder.WebHost.UseDeveloperExceptionPage(false);

// 注册其他业务服务
builder.Services.AddControllers();

var app = builder.Build();

// 首个注册自定义错误处理中间件
// 可使用官方异常处理中间件,也可替换为自研的自定义中间件
app.UseExceptionHandler("/error");

// 注册其他业务中间件
app.UseRouting();
app.UseAuthorization();

app.MapControllers();

app.Run();

2. 自定义错误处理中间件前置注册

中间件管道按注册顺序执行,只要将自定义错误处理中间件注册到所有其他中间件的最前面,提前捕获异常并完成响应,后续的DeveloperExceptionPageMiddleware永远不会被触发:

  • 无需修改默认的自动注册逻辑,只需要保证app.UseExceptionHandler()或者你的自定义错误处理中间件,是var app = builder.Build();之后注册的第一个中间件即可。
  • 该方案适合仍需要在部分场景下保留DeveloperExceptionPageMiddleware能力的使用场景。

3. 手动移除已注册的中间件

如果是第三方类库等不受控制的逻辑注册了DeveloperExceptionPageMiddleware,可在服务注册阶段直接移除该中间件的服务注册,使其无法被实例化:

  • 在服务注册阶段添加代码:builder.Services.RemoveAll(typeof(DeveloperExceptionPageMiddleware));即可。
  • 该方案会导致所有尝试使用DeveloperExceptionPageMiddleware的逻辑失效,适合需要彻底清除该中间件的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:06:08