2017-08-02 58 views
0

由于我们已经搬到天蓝色,我们有很多会话丢失问题只有在生产。频繁意外的Asp.net会话丢弃主持在Asure

我们有InProc,基于cookie,粘滞会话,超时大,没有高流量和高内存/进程使用率。

我们使用HAProxy作为负载均衡器。

我已经做了基础研究,没有下面的似乎是原因:

  • 会话超时
  • 应用程序池设置/回收
  • 内存大小和使用阈值
  • 没有吃掉了例外
  • 文件系统没有变化导致重启

我特别对loadbalancer/ssl和应用程序如何协同工作以及http头是否好,但我不知道任何工具来真正监视它。

我被分配到找到一个解决方案,同时我没有权限访问这些机器。

日志(Log4Net)都存储在数据库中,但无助于清楚地了解系统上正在进行的操作,并且无法跟踪使用它们的用户会话。

我可以通过向代码添加所需的日志或开发某种监视模块或使用分析/调试工具来查找问题。

每个月只会有一次生产部署,所以我试图尽可能地利用这个机会。

问:

  1. 是否有任何有用的监视/分析工具,可以给我什么是系统通过汇总我可能需要的信息发生了一个明确的说法?例如,在从登录时间到会话丢弃的请求之间的用户/会话之后加上关于头部和其他系统应用参数的信息。
  2. 如果没有这样的工具,请给我你的想法写一个?

回答

0

这是负载均衡环境中的常见问题。正如在answer中针对类似问题所述,

InProc模式,它将会话状态存储在Web服务器的内存中。这意味着会话数据在给定虚拟机上的Web服务器内部进行维护,并且不在虚拟机之外共享。所以当你有多台服务器进行负载平衡时,会话状态不会相互共享。要解决这个问题,您必须将会话状态存储在Web服务器外部。

使用Redis或SQL数据库或其他东西。