将SessionSate从InProc移动到StateServer

时间:2015-02-03 11:17:44

标签: c# asp.net serialization session-state stateserver

我目前正在开发一个存储其会话状态的应用程序。由于我们在发布应用程序/应用程序池时已写入应用程序的方式,因此会话数据丢失且用户已注销。

这并不是很好,原因有三:

  1. 升级软件记录用户
  2. 在修复错误时遇到困难,因为当我们重建解决方案时,开发人员必须导航回他/她正在处理的页面,这需要时间。
  3. 我们希望转向负载均衡的基础设施
  4. 我已决定将会话状态移至StateServer以防止会话丢失。

    使用StateServer的先决条件是存储在Session中的所有对象必须是Serializable,因此必须使用System.SerializableAttribute明确地进行修饰。

    所以我发现自己手动浏览了SessionData对象的整个对象图(这是非常大的)并且花了一些时间。

    我已经停止了这一点,因为这似乎是一项错误的任务。

    我还发现我们的根SessionData对象可以很好地存储在会话状态中,即使属性没有用Serializable属性修饰,只要它们为null。所以,在没有通过所有我不知道的事情,直到抛出异常。

    所以我的问题是:

    1. 我是否正确决定将会话状态移出进程(我们可能会转向负载均衡模型,因此我认为情况需要如此)
    2. 我需要手动浏览整个对象图并显式添加System.SerializableAttribute是否正确。
    3. 提前致谢。

0 个答案:

没有答案