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

为现有ASP.NET Core Web API添加.NET Aspire后,builder.MapDefaultEndpoints()报错

解决方法

错误原因很明确:MapDefaultEndpoints是WebApplication类型的扩展方法,你错误地在WebApplicationBuilder实例(代码里的builder)上调用它,触发了类型不匹配的错误。

正确做法是将MapDefaultEndpoints()的调用移到builder.Build()之后——因为builder.Build()返回的才是WebApplication实例(代码里的app)。结合.NET Aspire的使用规范,建议将其放在startup.Configure调用之后、app.Run()之前。

修改后的完整代码如下:

try
{
    Log.Information("Starting Rest API");
    var builder = WebApplication.CreateBuilder(args);

    var startup = new Startup(builder.Configuration);

    startup.ConfigureServices(builder.Services);

    // 这行调用正确,AddServiceDefaults属于WebApplicationBuilder的扩展方法
    builder.AddServiceDefaults();

    ConfigureLogger(builder.Host);

    var app = builder.Build();

    startup.Configure(app, app.Environment);

    // 移至此处,在WebApplication实例上调用
    app.MapDefaultEndpoints();

    app.Run();
}
catch (Exception ex)
{
    Log.Fatal(ex, "Host terminated unexpectedly");
}
finally
{
    Log.CloseAndFlush();
}

关键修改点:

  • 保留builder.AddServiceDefaults()在builder.Build()之前(这部分调用逻辑正确)
  • 将原builder.MapDefaultEndpoints()改为app.MapDefaultEndpoints(),并调整到var app = builder.Build()之后的代码段中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 02:17:07