2010-01-25 34 views

回答

1

如果你真的需要保留Web請求和數據之間的數據的數量是特定於用戶,我建議連載,並用鑰匙將用戶會話存儲在數據庫中的臨時表。如果您正在使用Sql服務器會話,那麼您可以通過Session對象執行此操作,否則您需要編寫一個自定義的實現。

如果數據不是唯一的用戶,但可以分享,那麼你可以存儲和從器件的應用緩存中檢索。

+0

在SQL Server中存儲會話狀態似乎是最簡單的選擇。這個鏈接應該有幫助http://support.microsoft.com/kb/317604 – 2010-01-25 11:28:49

+2

10兆是大的會話狀態,至少會議不是這樣使用。 – Robert 2010-01-25 12:50:08

+0

@Robert - 這就是爲什麼我指定使用'Sql server'會話狀態而不是'inproc'會話狀態! – 2010-01-25 16:37:49

0

一個具體的答案取決於有關應用程序和有關數據結構的更多信息。您可以考慮將數據放入臨時文件中。如果不關心內存,並且沒有太多的並行用戶,則可以使用會話狀態。

+0

或者,如果您在sql server而不是內存中持有會話狀態,則可以使用該狀態而不是寫入自定義進程來編寫和檢索數據。我建議將它保存到臨時表中,而不是寫入文件系統。 – 2010-01-25 16:37:15

0

也許它存儲在光盤上的文件就足夠了,但是,你必須創建自己的實現文件管理器或類似這樣的東西。

的10Mb會話太大,但它發送到數據庫是資源的浪費。保存到文件將是臨時數據的最輕和最快的方法。

+1

使用Sql Session狀態的好處是,所有的方法都已經存在,您可以保存,檢索和清除數據。如果您存儲到文件系統中,則需要自己編寫這些文件,並非常小心磁盤空間(100個用戶== 1Gb)。您將需要確保這些文件在不再需要時被刪除。我自己並沒有真正看到這樣做的優勢。最好儘量避免在Web請求之間保存這些數據量。 – 2010-01-25 16:57:02

+0

「(100個用戶== 1Gb)」 - 數據庫相同。編寫處理該場景的文件管理器不是問題。 – dariol 2010-01-25 23:23:38

相關問題