为什么对象在IIS7中的会话中消失?

时间:2011-01-12 11:00:51

标签: c# asp.net session iis-7 session-state

我正在对我的Web应用程序进行一系列调用(经典模式下的IIS7)。前两个调用实例化对象并将它们放在Session对象中。

当我进行第三次调用时,会话缺少一个对象。我希望Session中有2个密钥,但只有1个。

几乎就像创建了多个会话一样。有一点需要注意的是,这种情况发生了很多,它不是100%可重复的,即有时候一切正常。

对象很大,但不是很大(大约100个小字符串)所以我似乎不太可能最大化会话大小。我没有把任何其他物品放在那里。

3 个答案:

答案 0 :(得分:2)

听起来你正在等待未经处理的异常,你不知道。会议在此类例外情况下被销毁。

将global.asax中的断点设置为Application_OnError,Session_End和Session_Start方法以检查它们

答案 1 :(得分:1)

好的,我解决了它(在citronas的global.asax提示的帮助下)。

与以往一样,事实证明我在我的问题和评论中断言的事情并不像我假设的那样真实。

前两个调用实际上并不是连续调用,而是第二个调用是在第一个有时间返回之前进行的。这导致两个Session_Start调用(有趣的是具有相同的会话ID)。因此,第一次会议数据被覆盖。

更改我的应用程序以等待每次调用返回修复问题。

感谢所有回答或评论的人。

答案 2 :(得分:0)

哪一个消失了,第一个还是最新一个?您的应用程序似乎在第一次调用后被回收,因此第一次添加将被删除。