2011-01-05 75 views
3

我一直在尋找網絡,試圖找到一些身體其他誰在我面前有這個問題,但沒有人描述我在的確切情況。其他人有下降會話狀態那些呆在外面,或者像5分鐘那樣有短暫的會話狀態,或者是那種性質。然而,我的問題是,我的會話狀態變量似乎只有一次回傳,請跳過下一個回覆,有時再次回到第三次。ASP.NET會話消失/重新出現

您可以登錄我的網站:EpicClanWars.com,然後可能會刷新一些頁面,然後在第二或第三個不同的頁面之後,您會看到右上角的登錄文本框,就像您未登錄一樣。但是,如果您再次刷新頁面,該網站會顯示您再次登錄。

我假設這與viewstate有關,但我不太瞭解ASP.NET的viewstate或如何解決它。爲了支持這一點,我收到了一些與MAC問題有關的錯誤消息(我遺憾地忽略了保存這篇文章),以及查看狀態問題。

我最近不得不在運行我的網站的機器上重新安裝操作系統。當我這樣做時,我重新安裝了Visual Studio,IIS,SQL Server等。在重新安裝之前,我沒有這個問題。我正在使用VS.NET 2005和IIS 7.

因此,有誰知道這裏發生了什麼?並有可能建議如何解決它?

+0

你使用SQL Server保持會話? – Aristos 2011-01-05 22:16:41

+0

@Aristos不,我允許ASP服務器管理「正在處理」會話,如選項所示(所以我認爲它會將它保存在內存中)@Russ Cam可以詳細說明嗎? – Jrud 2011-01-05 22:19:08

+0

看來,如果不查看代碼,很難弄清楚發生了什麼。你可以分享嗎? – Restuta 2011-01-05 22:27:35

回答

2

您可以登錄到我的網站: EpicClanWars.com,然後也許 刷新了幾頁,然後將 第二或第三不同的頁面後,您將獲得 登錄文本框像你右上角 沒有登錄。但是,如果您再次刷新頁面, 網站會顯示您再次登錄。

這是一個緩存問題。從你有動態頁面並保持每個頁面上的登錄那一刻起,你就需要絕對不要在客戶端保存緩存頁面。所以你的客戶端只需要讀取一個緩存頁面,在更新之後就可以獲得新頁面。

在你的頁面上,你給你也有一個DNS問題WWW。,檢查出來並使其工作。如果您只保留一個副本,您需要將www.epicclanwars.com重定向到epicclanwars.com。此時www.epicclanwars.com,根本沒有工作。

即將進入內存的「正在處理中」在共享環境中並不十分準確,並且如果您的計算機運行在他的限制範圍內,或者出於任何原因重新啓動了池,可能會丟失會話。也許如果你沒有解決頁面緩存的問題,也可以考慮移動數據庫上的會話。

還要檢查web.config中的會話,httpCookies形式roleManager,必須有域= 「epicclanwars.com」

+0

謝謝,我忘了添加WWW的其他綁定。這個問題是固定的...我會看看緩存,h/o – Jrud 2011-01-05 22:27:22

+0

實際上,我收回「它修復了所有問題」......問題仍然存在,沒有緩存,它就會更好。所以這個問題仍然是開放的。 – Jrud 2011-01-05 22:44:04

+0

@Jrud你不需要只是禁用緩存,但爲緩存添加標題! – Aristos 2011-01-06 00:31:42