在页面加载时,我正在填充我自己的对象,存储在session&它正在存储, 当我调试时,我可以看到该对象存储在会话中,但当我正在读取该会话变量时...它为空,
令人惊讶的是,我能够使用其他会话变量,
Howerver当我的sessionstate =“InProc”时,我能够得到会话变量...当sessionstate ='StateServer'或sessionstate ='SQLServer'时,我得到它为空
我保持会话TimeOut =“20”, 在页面上我添加了EnableSessionState =“True”
请帮忙, - Prashant C
答案 0 :(得分:2)
您的类型是否(直接或间接地,可能通过继承)实现ISerializable
? in-proc和其余部分之间最大的区别是in-proc没有序列化,所以序列化是首先要看的。
听起来确实很奇怪 - 如果它“关闭”,我希望得到一个异常或一个未初始化的对象 - 而不是null。也许是一个愚蠢的问题,但传入的请求肯定有所有正确的标题/饼干?即它仍然知道它在哪个会话?
要解释一下,如果您的类型既不实施ISerializable
也有[Serializable]
,我会期待一个例外;你添加了[Serializable]
,但事实上它还没有错误,这让我觉得混合中有一些ISerializable
。
答案 1 :(得分:1)
sessionstate ='StateServer'或sessionstate ='SQLServer'要求您的对象可序列化。