2010-11-15 91 views

回答

2

會話變量默認由Web服務器保存在內存中。在構建時,您將重置應用程序,並因此丟失所有會話(以及靜態,緩存等)值。

如果您願意,可以通過更改session state mode將ASP.NET配置爲使用不同的會話狀態提供程序。注意「InProc」是默認設置,它將全部保存在內存中。您可以使用運行在不同進程中的StateServer,並且可以位於不同的計算機或SQLServer上 - 甚至可以自己編寫。

+0

所有很好的答案,但爲了開發目的,我將使用狀態服務器模式來存儲會話狀態。 – 2010-11-16 21:21:42

1

每次重建時,服務器顯然都會重新啓動並刪除所有會話數據,因此這取決於您要完成的操作。

如果您正在討論簡單的用戶會話數據,然後嘗試將它們存儲在Cookie中(用於開發目的),但是如果您使用.NET的緩存來存儲更多的會話數據,那麼這會變得更復雜,那麼它可能是值得的。

1

請記住,每次重建時,都可能重新定義每個Session變量的含義。在構建之後,ASP.NET無法知道它是否具有相同的含義。

通常不值得甚至想到讓他們在身邊。在某些情況下(測試),也許你應該編寫一個測試頁面來填充變量,然後啓動你進入你正在測試的頁面。