如何强制状态服务器丢弃所有会话?

Ond*_*rka 3 asp.net iis session session-cookies

我有一个 asp.net web 应用程序,它使用状态服务器来存储其会话。当我们更改会话中存储的某种类型时,所有具有活动会话的用户都会出错,因为“旧会话”包含“旧类型”的实例。

我认为克服这个问题的最简单方法是重新启动状态服务器,从而摆脱所有会话。然而,这被认为是一种幼稚的方法。会话似乎仍然处于活动状态(具有会话旧 cookie 的用户仍然能够工作)。是否有其他方法可以强制会话状态服务器丢弃所有会话,以便为旧用户分配新会话?如果他们被迫再次进行身份验证,那也没关系。

或者是否有其他(更好的)方法可以放弃所有会话?理想情况下不是以编程方式,但我们的管理员可以做些什么?

的程序化的方法来woudl调用可能Session.RemoveAllApplication_End会解决这一问题,卜本标准的做法?

如果不在内存中(在重新启动时应该停止存在),会话将存储在状态服务器中的何处?

我发现了两个相关的问题:

在应用程序启动时清除所有会话- 这是相当不完整的编程解决方案

如何清除 ASP.NET 中所有用户的 SQL 会话状态- 如果我有一个存储会话数据的 sql server 方法,这正是我所需要的

Ond*_*rka 6

好的,所以看起来(经过一些实验),会话状态服务器的重新启动会丢弃会话中的所有数据。

尽管如此,用户在重新启动后仍然具有有效的会话 ID,这让我最初认为会话不会被丢弃。

我想如果从用户发送的会话 ID 没有分配给某个现有会话,那么它会被重新用于新会话,因此用户仍然使用相同的 ID 进行操作。然而,会话中的数据被清除。