由于我们已经转向azure,因此我们在制作时会遇到很多会话丢失问题 。
我们有InProc,基于cookie,粘性会话,大超时,没有高流量,没有高内存/进程使用。
我们使用 HAProxy 作为负载均衡器。
我做了基础研究,以下似乎都不是原因:
我特别担心loadbalancer / ssl和应用程序如何协同工作以及http标头是否正常,但我不知道任何真正监控它的工具。
我被指派在没有权限访问机器的同时找到解决方案。
Logs(Log4Net)都存储在数据库中,但没有帮助清楚地了解系统上发生了什么,也无法跟踪使用它们的用户会话。
我可以通过向代码添加所需的日志或开发某种监控模块或使用分析/调试工具来找到问题。
每月只会进行一次生产部署,所以我尽量利用这个机会。
问题:
答案 0 :(得分:0)
这是负载均衡环境中的常见问题。正如此answer中提到的类似问题,
InProc模式,它将会话状态存储在Web服务器的内存中。这意味着会话数据在给定VM上的Web服务器内维护,并且不在VM外部共享。因此,当您有多个服务器进行负载平衡时,会话状态不会相互共享。要解决此问题,您必须将会话状态存储在Web服务器外部。
使用Redis或SQL数据库或其他。