2017-08-02 25 views
0

由於我們已經搬到天藍色,我們有很多會話丟失問題只有在生產。頻繁意外的Asp.net會話丟棄主持在Asure

我們有InProc,基於cookie,粘滯會話,超時大,沒有高流量和高內存/進程使用率。

我們使用HAProxy作爲負載均衡器。

我已經做了基礎研究,沒有下面的似乎是原因:

  • 會話超時
  • 應用程序池設置/回收
  • 內存大小和使用閾值
  • 沒有吃掉了例外
  • 文件系統沒有變化導致重啓

我特別對loadbalancer/ssl和應用程序如何協同工作以及http頭是否好,但我不知道任何工具來真正監視它。

我被分配到找到一個解決方案,同時我沒有權限訪問這些機器。

日誌(Log4Net)都存儲在數據庫中,但無助於清楚地瞭解系統上正在進行的操作,並且無法跟蹤使用它們的用戶會話。

我可以通過向代碼添加所需的日誌或開發某種監視模塊或使用分析/調試工具來查找問題。

每個月只會有一次生產部署,所以我試圖儘可能地利用這個機會。

問:

  1. 是否有任何有用的監視/分析工具,可以給我什麼是系統通過彙總我可能需要的信息發生了一個明確的說法?例如,在從登錄時間到會話丟棄的請求之間的用戶/會話之後加上關於頭部和其他系統應用參數的信息。
  2. 如果沒有這樣的工具,請給我你的想法寫一個?

回答

0

這是負載均衡環境中的常見問題。正如在answer中針對類似問題所述,

InProc模式,它將會話狀態存儲在Web服務器的內存中。這意味着會話數據在給定虛擬機上的Web服務器內部進行維護,並且不在虛擬機之外共享。所以當你有多臺服務器進行負載平衡時,會話狀態不會相互共享。要解決這個問題,您必須將會話狀態存儲在Web服務器外部。

使用Redis或SQL數據庫或其他東西。