如何找到ASP.NET中的哪个对象无法序列化?

Yur*_*ich 6 .net asp.net asp.net-mvc session serialization

我的应用程序中出现以下错误:

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

堆栈跟踪未提供有关哪个对象无法序列化的任何良好信息.有没有找到问题孩子的好方法?

编辑:我发现了问题,我试图序列化一个Linq语句(未执行).但我会尝试选择一个能够最好地解决这个问题的答案.

Mar*_*ell 5

实际上,您应该主要存储您自己的状态数据/对象(理想情况下建模为DTO类),在这种情况下,答案是:任何标记为[Serializable]ISerializable.您不应该将原始UI控件或其他未知对象添加到会话状态.特别是,出于这样的原因,前几天对应用程序产生了重大的性能影响.