启用会话状态 = 只读 - 可能的副作用



我们有一个相当大的基于Web的解决方案,它运行在.Net 4.5上。 最近,当我们检查一个性能问题时,系统似乎在任何给定时间(每个客户端)只处理一个请求,我们了解到其原因是会话状态。 通过将 EnableSessionState 属性更改为只读,可以同时处理多个请求,并显著提高性能。

我们认为也许我们会遇到各种各样的问题,因为我们在系统中的许多事情上都依赖于会话状态,但到目前为止,我们还没有真正产生任何负面的副作用。 登录按预期工作,我们存储在会话状态中的所有内容似乎也工作正常。

这就引出了一个问题...为什么这不是默认行为? 这有什么明显的不良副作用,我们还没有经历过吗?

仍然只有 62 次浏览?

好吧,我们已经运行了大约 7 个月,没有不良副作用,只是大大提高了性能。 所以我问题的答案是"我不知道,也没有"。

继续:-)

最近确实将会话设置为只读,并且最初确实加快了页面响应性能,我们确实注意到任何长时间运行的帖子(例如来自另一个会话的长报告)都会占用整个站点的资源,锁定每个人。我们的解决方案是将任何繁重的报表流程卸载到队列中到报表引擎,让 Web 专注于页面。

但是,当会话设置为满时,它可以更好地将 CPU 周期分配给每个会话,并首当其冲地承受另一个繁重会话的影响。这就是我们的观察。

最新更新