启动第二个会话时,MVC 中的路由如何发生?

Posted

技术标签:

【中文标题】启动第二个会话时,MVC 中的路由如何发生?【英文标题】:How does routing happen in MVC when second session is started? 【发布时间】:2021-12-27 14:43:53 【问题描述】:

我知道Application_Start()方法在ASP.Net中只会被调用一次,在MVC应用程序的Application_Start()方法中我们会调用RegisterRoutes()来创建路由表。

这是否意味着路由表只会在第一个请求到达服务器时创建一次?或者对于新用户(新会话)的每个新请求,都会创建路由表?

【问题讨论】:

如果你在那里放置一个调试断点,用调试器启动你的应用程序,然后开始向它发出请求,你观察到会发生什么? @David 我已经这样做了,我观察到 Application_Start() 只会被调用一次,而 Session_Start() 将在新会话启动时执行。 【参考方案1】:

首先,停止学习过时的上下文。 Global.asax,它背后的代码.csApplication_Start() 和其他神奇的方法是旧的.NET Framework ASP.NET 4 的处理方式。如今,新的开发和教育应该发生在 .NET Core 上,例如参见 Migrate from ASP.NET to ASP.NET Core。

至于您的问题:路由信息在启动时构建一次,然后在 Web 应用程序存在期间一直保存在内存中。

【讨论】:

以上是关于启动第二个会话时,MVC 中的路由如何发生?的主要内容,如果未能解决你的问题,请参考以下文章

angular中的路由,watch,service和ajax

ASP.NET MVC如何设置路由启动

第一个路由器设置了,第二个路由器还需要设置吗

启动后更改MVC6的路由集合

爱快小白无线路由器怎么再连第二个路由器

路由和 url 中的 ASP.NET MVC 5 文化