2010-12-02 104 views
1

我們的Intranet有一個自定義成員資格系統(而不是asp成員資格),它將值放入會話信息中以標識用戶。隨着Intranet不斷髮展,我經常不得不每天向服務器發佈更改。每次我這樣做,登錄會話的用戶都會結束,他們必須重新登錄。這導致了我不會在這裏遇到任何人的各種問題。防止會話結束時webroot更改

我的問題 - 無論如何,以防止這種情況,還是我只需要忍受它呢?已經度過了最後3個小時的Goggling,並且找不到解決方案。

在此先感謝。

回答

3

的解決方案是使用不同的會話模式;您正在使用「InProc」,這意味着會話與您的應用程序存儲在相同的應用程序空間中。您可以使用「StateServer」或「SQLServer」,但是這些可能需要更改應用程序(以及其他設置; StateServer需要在IIS服務器上運行單獨的服務,而SQLServer將需要數據庫來存儲信息)。您存儲在會話中的所有內容都需要可序列化。

Here is the information on MSDN regarding Session Mode

+0

謝謝!這就說得通了。不能相信1:我自己找不到,2:我寫了「Goggling」。當人們這樣做時,我討厭它。 – LiverpoolsNumber9 2010-12-02 15:19:19

0

如果你的問題是關於保持你的服務器全天候而不會造成任何中斷用戶(會話/系統停機等損失),那麼它包括以下步驟:

  1. 您應該配置您的應用程序存儲您的會話在DB
  2. 您需要設置一個以上的應用程序服務器故障轉移策略
  3. 將請求路由到這些服務器的一個動態的,你需要一個負載平衡器
  4. 現在,你什麼時候想要部署rele的下一個版本Ase活到應用程序。服務器表示S1和S2,請按照以下步驟操作: [4.1。]更改您的負載均衡器配置,使其不將請求路由到S1。 [4.2。]將應用程序部署到S1 [4.3。]這次更改您的負載平衡器配置,包括S1和排除S2。 (所有後續請求將使S1從S1和S2所連接的公用DB中獲得會話信息) [4.4。]根據需要重複上述步驟。

最重要的是,在首先在活動/生產箱上進行測試之前,總是嘗試始終在暫存環境中測試上述步驟。

祝你好運!