3

使用 VS2008sp1:尝试找到一种可靠的方法(或正确的方法)来更新正在运行的 Web 应用程序(ASP.NET 3.5sp1),而不会丢失当前的用户会话/上下文。

我知道用户可以在发布期间收到一条繁忙的消息,这没关系。问题是:IIS 会重置会话吗?或丢失当前用户所在的任何上下文?这个可以分阶段吗?或者我可以调整我的架构来解决这个问题。

我现在唯一的当前解决方案是在“下班后”进行,但一旦 24x7 - 那是什么时候?;)

4

1 回答 1

6

每当您更新 Web 应用程序时,应用程序域就会终止并启动一个新的应用程序域,因此除非您将用户状态存储在其他地方,否则您的用户将失去他们的会话状态。

解决此问题的几种方法是:

  1. 将用户会话存储在进程外(可能是数据库)。只要此状态在某处持久存在,您就可以在应用程序重新启动时从 Web 应用程序本身恢复用户的状态。

  2. 不要将状态/会话值存储在 cookie 或查询字符串以外的任何地方。这样,重新启动应用程序时不会丢失任何状态。

于 2009-12-11T00:35:24.143 回答