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

ASP.NET Core不同版本app.Run()问题:.NET 6运行后异常退出

.NET 6中中间件代码导致程序意外退出的原因

在.NET 6及后续版本中,默认采用了顶级语句和最小API的项目模板结构,和ASP.NET Core 2.x的启动模式差异明显。

ASP.NET Core 2.x里,我们一般在Startup.cs的Configure方法中配置中间件,程序会由Program.cs中的WebHost启动并持续运行。但在.NET 6的顶级语句模板中,如果只单独编写你提供的中间件代码:

app.Run(async (context) =>
{
    await context.Response.WriteAsync("HAHA");
});

这段代码缺少了Web应用的核心构建与启动逻辑——没有调用WebApplication.Run()方法来启动服务器并维持程序运行。程序执行完中间件配置代码后,没有后续的阻塞或持续运行逻辑,会直接以代码0退出。

正确的.NET 6写法需要包含完整的应用构建和启动流程:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.Run(async (context) =>
{
    await context.Response.WriteAsync("HAHA");
});

app.Run(); // 关键:启动服务器并保持程序运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 06:54:07