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

MVC启动第二个会话时路由如何执行?路由表是否会重复创建?

结论

路由表只会在应用启动阶段创建一次,不会随每个新用户的新会话重新创建。

具体原理

  • Application_Start() 是ASP.NET框架提供的应用生命周期事件,触发时机是应用进程启动后接收到第一个用户请求时,且在整个应用进程的运行生命周期内,这个方法仅会被执行一次。
  • MVC默认会在Application_Start()中调用RegisterRoutes()方法,执行完成后生成的路由规则会被存入RouteTable.Routes这个全局静态集合,是整个应用所有请求共享的配置,所有后续用户的所有请求做路由匹配时,都是读取这个全局集合的规则,不会单独为每个会话/用户生成新的路由表。

什么情况会重新生成路由表?

只有当应用进程重启时,才会重新触发Application_Start()执行,进而重新生成路由表,常见的触发进程重启的场景包括:

  • 修改了站点根目录下的web.config文件
  • 更新了bin目录下的应用程序dll文件
  • IIS应用池手动回收/自动回收
  • 服务器重启

如果你在业务代码中手动修改RouteTable.Routes集合的内容,属于主动修改全局路由规则,修改后的规则会对所有后续请求生效,不属于框架自动重新创建路由表的范畴。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:15:05