【发布时间】:2014-08-24 05:43:34
【问题描述】:
我在一个经典的 ASP 网站上工作,该网站使用 ASP 会话状态来保存状态信息。我们使用 ASP 会话状态的 sql 数据库实现。
我们遇到了一些问题,即会话被锁定,然后对该会话的后续请求堆积到影响我们性能的大队列中。我不希望你能够为我解决这个问题,但也许有人可以给我一个会话状态的概述,因为我认为我并不完全理解它。
- 我们的页面都没有被标记为只读,因此我们对会话数据库的所有请求都是独占的 (TempGetStateItemExclusive3);这反过来又锁定了会话。
- 我了解,如果对会话进行了修改,我们会更新数据库中的会话 (TempUpdateStateItemShort),并且该过程的一部分会删除锁定。
- 我也明白,如果我们放弃一个会话,锁会被 (TempRemoveStateItem) 删除。
- 我还了解到,sql 代理作业会定期发生以删除过期会话。
我不明白我们如何放弃会话或如何释放通过 Get 锁定但未更新的会话的锁定?
我已阅读以下内容以了解http://msdn.microsoft.com/en-gb/library/aa478952.aspx 和http://msdn.microsoft.com/en-us/library/aa479041.aspx
我们将一如既往地欣然接受和感谢任何帮助。
【问题讨论】:
-
asp.net 还是经典的 asp?
标签: asp.net session-state