一个webapi项目使用了session,发现同一用户的并发请求调用后台webapi接口,到了后台就变串行执行了,为了提高性能,现在想针对某个controller或action设置session readonly。
在webform和MVC下都可以针对单个页面或controller设置session readonly,比如在controller上添加特性[SessionState(SessionStateBehavior.ReadOnly)],但是没有找到在webapi项目中的方案。
参考资料:https://www.cnblogs.com/emrys5/p/aspnet-session-readonly.html
你试试自己实现session就明白这个问题了->边改边读将会成为问题,那么写的时候用lock是很容易解决这个问题的;如果你能很明显的感受到“并发”访问 发生这个瓶颈,我认为主要考虑的是lock的范围效率成为了问题。你readonly难道就不创建 session了?—— 创建和删除是最最根源的lock问题。
只对那些仅读取session的controller或action设置readonly,那么前台在并发调用这些action的时候就是并行执行的。
加个lock,相同的数据会同步进行,不同的数据会并行
用的是asp.net框架的session哦。