使用VS2008sp1:尝试找到一种可靠的方式(或正确的方法)来更新正在运行的Web应用程序(ASP.NET 3.5sp1),而不会丢失当前的用户会话/上下文。
我知道用户可以在发布期间收到忙碌信息,这是可以的。问题是:IIS重置会话吗?或丢失当前用户所处的任何上下文?这可以分阶段进行吗?或者我可以调整我的架构来帮助它。
我现在唯一的解决办法是在'小时后'完成它,但一旦它24x7 - 这是什么时候? ;)
答案 0 :(得分:6)
每当您更新Web应用程序时,应用程序域都将终止并启动一个新应用程序域,因此除非您将用户状态存储在其他位置,否则您的用户将失去其会话状态。
您可以通过以下两种方式解决此问题:
将用户会话存储在进程中 (可能是一个数据库)。只要 这种状态在某个地方持续存在, 您可以恢复用户的状态 当应用程序恢复时,来自Web应用程序本身。
不存储状态/会话值 除了一个以外的任何地方 cookie或查询字符串。这样就不会失去任何状态 应用程序重新启动时。