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

.NET Core 6.0升级后UseMvc警告:最优方案及原理咨询

.NET Core 6.0升级后UseMvc与Endpoint Routing冲突警告解决方案

最优解决方案

直接替换旧的UseMvc()为端点路由的标准配置方式——这是.NET Core 3.0+官方推荐的路由方案,相比旧MVC路由更灵活、性能更优,也能完美适配.NET Core 6.0的架构设计。

保留Startup类的修改方式

修改原Configure方法如下:

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggingBuilder builder)
{
    builder.AddConfiguration(Configuration.GetSection("Logging"));
    builder.AddConsole();
    builder.AddDebug();
    
    app.UseDefaultFiles();
    app.UseStaticFiles();

    // 替换UseMvc()为端点路由配置
    app.UseRouting();
    app.UseEndpoints(endpoints =>
    {
        // 配置默认MVC路由,等价于原UseMvc()的默认行为
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
    });
}

.NET Core 6.0顶级Program.cs模式(推荐)

如果项目已经迁移到6.0的极简Program.cs写法,配置会更简洁:

var builder = WebApplication.CreateBuilder(args);

// 添加MVC控制器与视图服务
builder.Services.AddControllersWithViews();

var app = builder.Build();

app.UseDefaultFiles();
app.UseStaticFiles();

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

app.Run();

为什么Endpoint Routing不需要UseMvc()

  • 职责拆分更清晰:旧UseMvc()同时包揽路由匹配和请求调度,而Endpoint Routing将这两个环节拆分为UseRouting()(路由匹配)和UseEndpoints()(请求处理)。中间件可以在路由匹配完成后、请求真正处理前,访问路由数据完成权限校验、日志埋点等操作,扩展性更强。
  • 路由系统统一化:Endpoint Routing是.NET Core的统一路由框架,不仅支持MVC,还兼容Razor Pages、Web API、SignalR等所有端点类型。UseMvc()是MVC专属的旧路由实现,已被统一方案取代。
  • 配置灵活性更高:通过UseEndpoints()可以精细化配置路由规则,比如单独为某个控制器/Action指定路由,或者混合配置多种类型的端点(如同时挂载MVC控制器和SignalR集线器)。
  • 性能优化明显:Endpoint Routing的匹配逻辑经过重构优化,在多路由规则场景下,比旧MVC路由的匹配效率更高。

不推荐设置EnableEndpointRouting为false的原因

虽然关闭端点路由能快速消除警告,但这是退回到旧的MVC路由模式,会丢失Endpoint Routing带来的所有优势,包括统一路由生态、中间件集成能力、性能提升等。而且该配置属于过渡兼容方案,未来.NET版本可能会逐步移除,并非长期最优解。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 04:43:14