這裏的負載均衡部署網頁時避免無效的視圖狀態方案:無需停機
- 我們有3個Web服務器A,B,C
- 我們要釋放的應用程序的新版本而不會使應用程序停機
(例如,不使用「停機維護頁面」)。 - 服務器A使用最新的代碼。
- 服務器B脫機。服務器B上的用戶會路由到A和C.
- Page1.aspx已更新爲新控件。從服務器B到服務器A的任何人,而在此頁面上的
將在他們在此頁面上執行操作時收到視圖狀態錯誤。這是我們想要防止的。
你們怎麼解決這個問題?
這裏有一些想法,我們有(無論是可能的,或者不使用我們的負載平衡器,我不知道......我不熟悉的負載平衡器配置[這是一個F5]):
的更幼稚的做法:
取下服務器A和B並更新。 C保留舊代碼。所有的流量將被定向到C,這是可以的,因爲它是舊代碼。當A和B接受更新時,如果可能的話,告訴負載均衡器僅讓C上的主動會話的人員保持活動狀態,並且所有新的會話都會在A和B上發起。這種方法的問題在於,理論上會話可以堅持很長一段時間,如果用戶繼續使用該應用程序。
越少幼稚的做法:
類似於幼稚的做法,但(如果可能的話)我們要談的「安全」頁面,這是沒有改變的頁面負載平衡器。當用戶最終進入「安全」頁面時,他或她將被路由到服務器A或B.理論上,用戶可能永遠不會登陸其中一個頁面,但這種方法風險較小(但需要更多工作)。