每次打开网站时MVC初始化
本文关键字:MVC 初始化 网站 | 更新日期: 2023-09-27 17:58:20
我已经尝试了静态C#构造函数(用于MVC控制器)和Global.asax.cs,但不幸的是,应用程序似乎会延迟,因此当一个用户退出,另一个用户打开MVC应用程序时,静态变量初始化不会(总是)发生。显然,这些静态变量"存在"于应用程序实例之外(即应用程序在网站上打开和关闭时)。
有人知道在MVC网站(即主索引页)的打开和/或关闭时总是有效的方法吗?此时我需要重新初始化我的静态C#控制器成员。。。。
提前谢谢。
网站的生命周期与个人用户关系不大。事实上,在最近版本的IIS中,它甚至不需要传入请求来启动应用程序——它可以选择在任何流量之前先发制人。同样,用户之间也不会重做任何内容。由于http流量基本上是断开的,因此无法确定用户何时离开。Web服务器通常有回收/关闭标准,但这在很大程度上与用户无关。
web应用程序的生命周期:
- 在某个时刻,它开始了,也许是自发的,也许是由于传入的请求,也许是作为应用程序池循环的一部分
- 它为来自许多不同用户的大量http请求提供服务;经常同时进行,并且经常交错
- 在某个时刻,它会关闭;也许是由于不活动,也许是由于应用程序池循环,也许是因为服务器关闭
这里没有与用户相关的特殊生命周期。从web服务器的角度来看,您所能看到的只是单个请求,它们只会持续到您响应它们所需的时间。你不知道他们什么时候关闭浏览器,也不知道他们在浏览器上打开了标签,然后去度假了一周。
有的方法可以了解更多信息,但它们不是直接涉及web服务器的问题,当然也不应该与任何控制器成员状态绑定。如果它影响控制器状态:您做得不对。
可以在controller index()方法中为应用程序的"主页"(当新用户进入应用程序时总是访问它)执行以下操作:
我们的应用程序跟踪登录用户,因此可以使用静态变量跟踪旧用户,当这种情况发生变化时,对其他静态变量运行"初始化",最后将跟踪用户的变量设置为新用户。这对我努力实现的目标是有效的。
注意:我们没有一个高度事务性的系统,只有几个用户,不应该同时有多个用户。如果有的话,这可能会变得一团糟!