2010-07-19 15 views
0

我有兩個門戶網站在架構上幾乎完全相同。一個需要我以下內容添加到我的web.config和啓用狀態服務器,如登錄的用戶會話過期2-5秒後:使用StateServer與C#網站?

<sessionState mode="StateServer" 
         stateConnectionString="tcpip=localhost:42424" 
         cookieless="false" 
         timeout="20"/> 

我想知道一些根造成這種情況會導致一個門戶網站出現這個問題,而不是另一個。

這是一個坐在Windows 2008 R2上的C#ASP.Net v3.5應用程序。

奇怪的是,在我的本地開發盒(Windows 7)上,我不需要啓用它,而且會話持續很好。

任何關於此的討論將不勝感激。

回答

0

您還需要確保在machine.config文件或web.config中的服務器中定義機器密鑰。

我已經在Web場景中的工作服務器上成功實現了這個場景,最近一週最近,它確實幫助維護了我的會話。

至於爲什麼你需要做到這一點---

客戶需要一種方法來跟蹤他們的會話ID。在服務器場方案中,根據流量,它們可以在一個頁面請求上從服務器1反彈到另一個頁面請求上的服務器2,然後在另一個頁面請求上返回到服務器1。

This鏈接是非常有幫助的。

+0

然而,我有兩個門戶在同一個盒子上,正如我所提到的,兩者的架構基本相同......只是一個人的會話在幾秒鐘內消失... – ElHaix 2010-07-19 22:36:03

+0

嘗試在機器中添加一個機器鍵。 config,打開框中的會話狀態服務,然後用上面發佈的xml調整web.config,看看是否有效。 – TheGeekYouNeed 2010-07-20 08:35:32

+0

TGYN:我試圖弄清楚的是爲什麼我需要爲一個站點激活會話狀態服務,而不是另一個站點。我已經得到了這個成功的工作,只是想知道一些.Net架構組件是我構建的,可能會導致一個站點需要進程外會話狀態。 – ElHaix 2010-07-20 16:13:54