簡體   English   中英

會話狀態異常行為

[英]Session State strange behavior

我有一個ASP.NET 3.5 Webforms應用程序,該應用程序位於兩個Web服務器(IIS)上,並通過具有粘性關聯的內容開關進行負載平衡。 我有一個將數據放入會話變量中的頁面,javascript打開了一個新的瀏覽器窗口,並且在該頁面的page_load事件中,我檢索了該會話變量並顯示了數據。

問題在於,在所有版本的IE中,大約十分之7的時間都不會顯示任何數據。 如果我不斷刷新新打開的窗口,它將最終顯示數據。 我可以確認在打開瀏覽器窗口之前,會話變量有效。

另外一個問題是,Firefox沒有這個問題。 第一次顯示數據的時間為100%。 問題是我們不(正式)支持Firefox。

我們無權訪問任何第三方數據存儲(例如MSSQL或MySQL),因此無法存儲會話數據。 再加上緩存數據客戶端的功能是不實際的,在某些情況下不是一種選擇。

這不會在本地或在我們的測試環境(負載不平衡)中發生,所以我真的很困惑。 任何幫助將不勝感激。

謝謝。

您正在使用哪個會話存儲提供商? InProc,StateServer? 聽起來您正在使用InProc。 如果是這樣,由於您無權訪問數據庫,因此切換到StateServer可能是您的答案。

這是一篇有關ASP.NET負載平衡和ASP.NET狀態服務器的文章 ,可能會對您有所幫助。

您提到您正在使用粘性會話/親和力。 您是否可以確認負載均衡器正在查看HTTP cookie(不僅僅是IP地址)來確定粘性,因為IP地址可以在單個會話中更改(例如,將便攜式計算機對接在有線和無線網絡之間)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM