我在一个使用ASP会话状态来保存状态信息的经典ASP网站上工作。我们使用sql数据库实现ASP会话状态。
我们遇到的问题是会话被锁定,然后对该会话的后续请求会堆积成影响我们性能的大队列。我不希望你能为我解决这个问题,但也许有人可以给我一个会话状态的概述,因为我认为我并不完全理解它。
我不明白的是我们如何放弃会话或如何释放我们通过Get但不更新锁定的会话的锁定?
我已经阅读了以下内容,以便在理解http://msdn.microsoft.com/en-gb/library/aa478952.aspx和http://msdn.microsoft.com/en-us/library/aa479041.aspx
时理解这一点一如既往,我们将非常感谢您的帮助。
答案 0 :(得分:1)
我花了一些时间研究这个问题,我认为我已经弄明白了。
放弃会话是一项明确的行动,Session.Abandon()
释放锁是一项隐含行动
在page_load事件中,调用TempGetStateExclusive3以获取会话对象。退出page_load隐式调用TempReleasStateItemExclusive。作为开发人员,您只能控制放弃会话,框架会为您处理锁定。
这并不能解决会话被锁定的问题。但至少现在我知道sql server会话状态应该如何工作。
由于