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

VS2022中ASP.NET Core MVC项目Program.cs编译错误CS1022求助

ASP.NET Core MVC编译错误CS1022解决方法

问题情况

在VS2022中创建ASP.NET Core MVC应用时,编译Program.cs出现CS1022错误(提示“Type or namespace definition, or end-of-file expected”),但文件内无红色错误标记;运行应用也出现启动失败错误。

编译错误截图:显示CS1022编译错误,提示需类型、命名空间定义或文件结束
运行错误截图:显示应用启动失败相关报错

原Program.cs代码

using Fluent.Infrastructure.FluentModel;
using System.Net;
using Microsoft.EntityFrameworkCore;


var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllersWithViews();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

//var builder = WebApplication.CreateBuilder(args);
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");

builder.Services.AddDbContext<ApplicationDbContext>(options =>
   options.UseSqlServer(connectionString));

错误原因

代码顺序完全错误:

  1. app.Run()是应用启动语句,执行后程序进入运行状态,后续代码根本不会执行
  2. 在ASP.NET Core的顶级语句结构中,app.Run()之后的代码属于无效语法,编译器无法识别,直接抛出CS1022错误
  3. 数据库上下文的注册(AddDbContext)必须在生成应用实例之前完成,也就是var app = builder.Build();之前,因为builder.Build()会根据已注册的服务创建应用,之后再修改服务容器毫无意义

修复后的代码

using Fluent.Infrastructure.FluentModel;
using System.Net;
using Microsoft.EntityFrameworkCore;


var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllersWithViews();

// 把数据库上下文注册移到服务配置阶段
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
   options.UseSqlServer(connectionString));

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

额外检查项

  • 确认appsettings.json里配置了正确的DefaultConnection连接字符串
  • 确认ApplicationDbContext类正确继承自DbContext

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:02:43