2009-12-02 95 views
0

我有一个.Net 3x应用程序,它使用默认的WCF序列化和最近设置的应用程序来使用SQL Server会话状态,并且不能将这些对象存储在与sql server的会话状态中,只能在proc会话状态。导致序列化错误的SQL Server会话状态

在各种类别上发生错误,说明:

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

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

回答

1

好像你有四种选择:

  1. 切换回是InProc模式
  2. 使对象[Serializable接口]
  3. 而不是在会话字典存储高层次的容器对象,请使用下而是已经可序列化的对象(如字符串,整数等)
  4. 避免使用传统的会话状态,而改用一些替代的状态管理方法代替

选项3通常运行速度快于2,但它也是更多的工作。

相关问题