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

.NET 8微服务IExceptionHandler中间件未触发问题排查

问题排查与修复

你的IExceptionHandler未被调用的核心问题是中间件顺序错误,同时存在两处潜在配置缺失,具体修复方案如下:


1. 调整中间件注册顺序

异常处理中间件需要尽可能早注册,才能捕获后续路由、控制器等中间件抛出的异常。修改Configure方法的中间件顺序:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{   
    #region Routing & Middleware
    // 优先注册异常处理中间件
    app.UseExceptionHandler();
    app.UseRouting();
    // 必须添加端点映射,否则控制器无法处理请求
    app.MapControllers();
    #endregion
}

2. 验证自定义扩展方法的有效性

代码中调用的exception.GetStatusCode()是自定义扩展方法,需确保它:

  • 能正确处理所有异常类型,返回合法的HTTP状态码(如500、400)
  • 自身不会抛出异常,否则会导致TryHandleAsync执行失败,框架会 fallback 到默认异常处理逻辑

3. 排查其他异常拦截逻辑

检查是否存在提前捕获异常的逻辑:

  • 控制器中是否手动捕获异常并直接返回响应
  • 是否注册了全局异常过滤器或其他冲突的异常处理中间件

内容的提问来源于stack exchange,提问作者HWS-SLS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 22:13:22