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

ASP.NET Core Web API中Developer Exception Page无法显示问题

问题诊断与解决步骤

1. 修正配置项与中间件逻辑

你在appsettings.json里设置的"UserDeveloperExceptionPage": true是无效配置——这个键并非ASP.NET Core的官方配置项。正确的配置逻辑是:

  • 在appsettings.Development.json中确保环境标识为开发环境:
    {
      "ASPNETCORE_ENVIRONMENT": "Development"
    }
    
  • 在Program.cs中优先添加开发者异常页面中间件,且仅在开发环境启用:
    var builder = WebApplication.CreateBuilder(args);
    var app = builder.Build();
    
    // 必须放在所有业务路由、中间件之前,才能捕获后续异常
    if (app.Environment.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    
    // 你的测试端点
    app.MapGet("/error/Test", () =>
    {
        throw new Exception("测试异常");
    });
    
    app.Run();
    

2. 调整调试器中断规则

调试器在抛出异常处中断是Visual Studio的默认行为,和代码配置无关。你可以修改设置让页面正常显示:

  • 打开「调试」→「窗口」→「异常设置」(快捷键:Ctrl+Alt+E)
  • 取消「Common Language Runtime Exceptions」下的「Thrown」勾选,只保留「User-unhandled」
  • 这样调试器只会在异常未被框架处理时中断,开发者异常页面就能正常渲染。

3. 检查端点是否手动捕获异常

如果你的测试端点用try-catch手动捕获了异常,框架的异常页面就无法触发。比如下面的写法会导致页面失效:

// 错误示例:手动吞掉了异常
app.MapGet("/error/Test", () =>
{
    try
    {
        throw new Exception("测试异常");
    }
    catch (Exception ex)
    {
        return Results.BadRequest(ex.Message);
    }
});

需要移除手动捕获逻辑,让异常向上抛出给框架处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 09:20:57