相关疑难解决方法(0)

无法序列化会话状态... [已更新!]

我试图在会话中存储一些对象(使用StateServer),但是我收到错误"System.Web.HttpException:无法序列化会话状态.在'StateServer'和'SQLServer'模式下"

我知道错误信息的含义,但我无法理解为什么.我使用的所有类都标记为Serializable,我可以使用以下命令对对象进行序列化和反序列化:

System.IO.StringReader stringReader = new System.IO.StringReader(xml);
System.Xml.XmlTextReader xmlTextReader = new System.Xml.XmlTextReader(stringReader);
System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(Parts));
Parts obj = ((Parts)(xmlSerializer.Deserialize(xmlTextReader)));
Run Code Online (Sandbox Code Playgroud)

这有效,并将使用以下序列化:

System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(this.GetType());
System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
xmlSerializer.Serialize(memoryStream, this);
memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
System.IO.StreamReader streamReader = new System.IO.StreamReader(memoryStream);
return streamReader.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)

但是在尝试将其存储在Session中时会抛出错误.

有没有人有任何想法可能导致这种行为?

编辑:

我刚刚发现这一行导致了错误(删除了所有内容并重新包含它)

/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("RecordReference", typeof(RecordReference), Form = System.Xml.Schema.XmlSchemaForm.Unqualified, Order = 0)]
[System.Xml.Serialization.XmlElementAttribute("PartContainer", typeof(PartContainer), Form = System.Xml.Schema.XmlSchemaForm.Unqualified, Order = 0)]
public object Item
{
    get
    {
        return this.itemField;
    }
    set
    {
        this.itemField = value;
    } …
Run Code Online (Sandbox Code Playgroud)

c# asp.net serialization

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

asp.net ×1

c# ×1

serialization ×1