导致序列化错误的SQL Server会话状态

时间:2009-12-02 22:00:59

标签: sql-server session-state

我有一个.Net 3x应用程序,使用默认的WCF序列化和最近的安装应用程序来使用SQL Server会话状态,并且无法将这些对象与sql server一起存储在会话状态,仅在proc会话状态。

在各个类上获取错误说明:

无法序列化会话状态。在“StateServer”和“SQLServer”模式下,ASP.NET将序列化会话状态对象,因此不允许使用不可序列化的对象或MarshalByRef对象。如果自定义会话状态存储在“自定义”模式下完成类似的序列化,则适用相同的限制。

我认为wcf的默认序列化就足够了,但显然不是。关于如何纠正编辑整个应用程序并将[Serializable]添加到类中的任何需要做的任何想法?

1 个答案:

答案 0 :(得分:1)

看起来你有四个选择:

  1. 切换回InProc模式
  2. 制作您的物品[可序列化]
  3. 不是在会话字典中存储高级容器对象,而是使用较低级别的对象,这些对象已经可序列化(例如字符串,整数等)
  4. 避免使用传统会话状态,而是切换到某种替代状态管理方法
  5. 选项3的运行速度通常会比2快,但它的工作量也会更多。