我已经尝试了静态C#构造函数(对于MVC控制器)和Global.asax.cs但不幸的是应用程序似乎仍然存在,所以当一个用户退出,而另一个用户打开MVC应用程序时,静态变量初始化不会(总是) 发生。显然,这些静态变量" live"超出应用程序实例(即应用程序在网站上打开和关闭时)。
有没有人知道在MVC网站(即主索引页面)的开放和/或关闭时始终有效的方法?我需要在此时重新初始化我的静态C#控制器成员....
提前致谢。
答案 0 :(得分:1)
网站的生命周期与个人用户关系不大。实际上,在IIS的最新版本中,它甚至不需要启动应用程序的传入请求 - 它可以选择在任何流量之前先发制人。同样,用户之间不会重做任何事情。由于http流量基本上是断开连接的,因此无法确定用户何时离开。 Web服务器通常具有循环/关闭标准,但这在很大程度上与用户无关。
Web应用程序的生命周期:
这里没有与用户相关的特殊生命周期。从Web服务器的角度来看,您所看到的只是个别请求,并且只有在您响应它们时才会持续。你不知道他们何时关闭浏览器,你也不知道他们已经在浏览器上打开了标签并且去度假了一个星期。
如果它影响控制器状态:你做错了。
答案 1 :(得分:0)
可以在控制器index()方法中为应用程序的“主页”页面执行以下操作(当新用户进入应用程序时始终访问该页面):
我们的应用程序跟踪登录的用户,因此可以使用静态变量跟踪旧用户,当此更改时,对其他静态变量运行“初始化”,最后将跟踪用户设置为新用户。这适用于我想要完成的任务。
注意:我们没有高度交易系统,只有少数用户,不应该同时出现多个用户。如果有,这可能会变得一团糟!