无法序列化会话状态。在“StateServer”和“SQLServer”模式下,ASP.NET将序列化会话状态对象,结果

时间:2014-01-07 13:01:55

标签: c# asp.net session serialization

我正在尝试为我的asp.net应用程序实现StateServer会话管理。我发现我的会话中的每个对象都需要可序列化。

为此我已经为每个类添加了 Serializable 标记。但它显示上面的错误消息。然后我尝试了Linq-To-Sql功能,以便至少对象将被序列化。但它也没有用。我应该怎么做。

1 个答案:

答案 0 :(得分:1)

问题是你在会话中放入了一些不可序列化的内容(正如你所怀疑的那样)。

由于您已将自己的课程标记为Serializable,因此有几种可能的可能性:

  1. 您继承了非Serializable的内容(因此标记您继承的课程Serializable无效)。

  2. 您尝试将某些内容存储在不属于您的某个类的会话中,并且不可序列化,很可能是框架类。常见示例可能是EntitySetDataTableDictionary<>

  3. 此外,应从完整的异常信息中明确指出导致问题的确切类。

    例如,以下是我linked to问题中显示的错误消息:

    [SerializationException: Type 'Gebruiker' in Assembly 'App_Code.qzuhycmn, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.]