处理IRequiresSessionState与IReadOnlySessionState的ASp.net状态服务器
本文关键字:net 状态 服务器 ASp IRequiresSessionState IReadOnlySessionState 处理 | 更新日期: 2023-09-27 18:27:27
我的朋友在这里问了一个问题
回答他的人写了一些有趣的东西!(没有任何证据,来源)。
当你使用进程外会话时,它会产生更大的影响状态存储。在这种情况下,如果没有接口,系统将仍然将会话数据存储在远程数据库中,即使没有更改(系统不跟踪会话是否数据在请求期间被修改)。当您使用IReadOnlySessionState接口,则跳过写回阶段。
它在哪里说IRequiresSessionState将写回会话(即使没有更改)?
任何解释都将被愉快地排除在外。
找不到这样的正式文档,但启动dotPeek(或其他一些反汇编程序)并查看System.Web
后,发现:
- 当
HttpContext.Handler
为set
时,如果处理程序实现IRequiresSessionState
,则HttpContext._requiresSessionStateFromHandler
设置为true
- 该后一个私人成员向CCD_ 7 ter通知CCD_
SessionStateModule
(我猜它总是在模块管道中)在其EndRequest
处理程序中检查HttpContext.RequiresSessionState
,如果是true
,则与会话状态提供程序对话以保存状态