常见的服务注册(Add Services)
使用 builder.Services.Add... 添加各种服务。
常见的中间件(Use Middleware)
使用 app.Use...
配置请求处理管道(执行顺序很重要!)
一个典型的 Program.cs
示例(.NET 6+ Web API)
var builder = WebApplication.CreateBuilder(args);// ======== 注册服务(Services)========
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();// 数据库上下文
builder.Services.AddDbContext<AppDbContext>(options =>options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));// CORS
builder.Services.AddCors(options =>
{options.AddPolicy("AllowAll", policy =>policy.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
});// 认证(如 JWT)
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>{options.TokenValidationParameters = new TokenValidationParameters{ValidateIssuer = true,ValidateAudience = true,ValidateLifetime = true,ValidIssuer = builder.Configuration["Jwt:Issuer"],ValidAudience = builder.Configuration["Jwt:Audience"],IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"]))};});builder.Services.AddAuthorization();// 健康检查
builder.Services.AddHealthChecks();var app = builder.Build();// ======== 配置中间件管道(Middleware Pipeline)========if (app.Environment.IsDevelopment())
{app.UseDeveloperExceptionPage();app.UseSwagger();app.UseSwaggerUI();
}
else
{app.UseExceptionHandler("/error");// app.UseHsts(); // 生产环境启用 HSTS
}app.UseHttpsRedirection();
app.UseStaticFiles(); // 如果有静态资源
app.UseCors("AllowAll");app.UseRouting();app.UseAuthentication();
app.UseAuthorization();// 健康检查
app.UseHealthChecks("/health");// 映射控制器
app.MapControllers();// 可选:最小 API
app.MapGet("/", () => "Welcome to the API!");app.Run();