2009-02-20 118 views
3

我正在製作一個使用會話變量的應用程序。我創建了一個「HistoryLine」類,另一個名爲「HistoryLineCollection」的「HistoryLine」列表。然後,我將HistoryLineCollection的實例保存到會話中,如下所示:ASP.net會話默認共享?

Session [「HistoryLines」] = hLines;

問題是,當我在另一臺計算機上看這個時,我看到了相同的列表!我認爲客戶端獨特的會話?我已經查看了sessionState,可能SessionID被克隆了,但是我看不到它。任何人有想法?

回答

1

不,asp.net會話不共享。發生這種情況的一種方法是在一臺計算機上瀏覽該應用程序,然後在另一臺計算機上使用該鏈接(將其發送給某人)。在這種情況下,如果您碰巧禁用了Cookie,則會話ID位於Url上。另一個人將在同一場會議上。 如果情況並非如此,那麼真的看看你正在使用的類,特別是標記爲靜態的任何東西。

+0

我忽略了我的列表是共享的。使它不共享並實例化對象的技巧! – miccet 2009-02-20 22:21:09

0

檢查創建要放入會話的列表的代碼。您可能正在爲每個會話創建相同的列表。

+0

我使用相同的類來生成項目列表,如果這就是你的意思。我設置了一個會話變量來保存項目列表,並以同樣的方式獲得,並進行演員表演。 – miccet 2009-02-20 22:02:14

1

是創建,然後把它放入Session以某種方式靜態(又名共享)的類的成員?