处理IRequiresSessionState与IReadOnlySessionState的ASp.net状态服务器

本文关键字:net 状态 服务器 ASp IRequiresSessionState IReadOnlySessionState 处理 | 更新日期: 2023-09-27 18:27:27

我的朋友在这里问了一个问题

回答他的人写了一些有趣的东西!(没有任何证据,来源)。

当你使用进程外会话时,它会产生更大的影响状态存储。在这种情况下,如果没有接口,系统将仍然将会话数据存储在远程数据库中,即使没有更改(系统不跟踪会话是否数据在请求期间被修改)。当您使用IReadOnlySessionState接口,则跳过写回阶段。

它在哪里说IRequiresSessionState将写回会话(即使没有更改)?

任何解释都将被愉快地排除在外。

处理IRequiresSessionState与IReadOnlySessionState的ASp.net状态服务器

找不到这样的正式文档,但启动dotPeek(或其他一些反汇编程序)并查看System.Web后,发现:

  • HttpContext.Handlerset时,如果处理程序实现IRequiresSessionState,则HttpContext._requiresSessionStateFromHandler设置为true
  • 该后一个私人成员向CCD_ 7 ter通知CCD_
  • SessionStateModule(我猜它总是在模块管道中)在其EndRequest处理程序中检查HttpContext.RequiresSessionState,如果是true,则与会话状态提供程序对话以保存状态