1
我知道我可以將小值存儲到Session
。有多少內存分配給會話變量?
最近我在Visual Studio中的ASP.NET應用程序,我已經學會了我還可以存儲較大的值,如DataTable
。
這讓我想知道有多少存儲Session
可以存儲。這是否依賴於瀏覽器或PC上的RAM?
我知道我可以將小值存儲到Session
。有多少內存分配給會話變量?
最近我在Visual Studio中的ASP.NET應用程序,我已經學會了我還可以存儲較大的值,如DataTable
。
這讓我想知道有多少存儲Session
可以存儲。這是否依賴於瀏覽器或PC上的RAM?
ASP.NET Session是存儲在承載該網站的網絡服務器。所以限制是你的網絡服務器有多少RAM,而不是客戶端PC上的瀏覽器或RAM。因此,如果您的網站上有4個用戶,並且每個用戶都擁有128MB的會話,那麼您的網絡服務器將擁有超過512MB專用於ASP.NET的RAM。
我也非常小心儲存了很多東西會議。特別複雜的類型,如DataTable。這是因爲每次訪問該對象時都必須進行序列化/反序列化,這可能會嚴重影響Web服務器的CPU。
我會推薦一些best practices for ASP.NET Session閱讀起來。
哦!我問過的好事。感謝您的鏈接。 – jp2code
快速跟進另一個upvote:我有一個'DataTable',我試圖添加行(想到一個購物車),但如果我在後面的代碼中聲明'DataTable',每次我測試* * ADD **按鈕向數據添加另一行,'DataTable'爲** NULL **。最好的解決辦法是什麼? – jp2code
如果您的DataTable對象正在從同一個ASP.NET頁面創建和訪問,那麼您可以將其存儲在ViewState中。 ViewState存儲在頁面上,所以如果你的DataTable變得非常大,你可以看到你的頁面負載顯着增長。如果它不是太大,則可以通過ViewState集合中的代碼訪問它(語法與Session類似)。 – ptfaulkner