如何從Web應用程序中找出ASP.NET中的會話大小?如何從Web應用程序中找出ASP.NET中的會話大小?
13
A
回答
30
如果你想在運行時獲取會話的大小,而不是在調試跟蹤,你可能想嘗試這樣的事:
long totalSessionBytes = 0;
BinaryFormatter b = new BinaryFormatter();
MemoryStream m;
foreach(var obj in Session)
{
m = new MemoryStream();
b.Serialize(m, obj);
totalSessionBytes += m.Length;
}
(由http://www.codeproject.com/KB/session/exploresessionandcache.aspx啓發)
0
我想你可以通過在aspx頁面的頁面指令中添加Trace =「true」來找到該信息。然後,當頁面加載時,您可以看到大量關於頁面請求的詳細信息,包括我認爲的會話信息。
您還可以通過向web.config文件添加一行來在整個應用程序中啓用跟蹤。喜歡的東西:
<trace enabled="true" requestLimit="10" pageOutput="true" traceMode="SortByTime"
localOnly="true"/>
16
上面的答案中的代碼不斷給我相同的數字。這裏是最後爲我工作的代碼:
private void ShowSessionSize()
{
Page.Trace.Write("Session Trace Info");
long totalSessionBytes = 0;
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter b =
new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
System.IO.MemoryStream m;
foreach (string key in Session)
{
var obj = Session[key];
m = new System.IO.MemoryStream();
b.Serialize(m, obj);
totalSessionBytes += m.Length;
Page.Trace.Write(String.Format("{0}: {1:n} kb", key, m.Length/1024));
}
Page.Trace.Write(String.Format("Total Size of Session Data: {0:n} kb",
totalSessionBytes/1024));
}
相關問題
- 1. ASP.NET Web應用程序會話問題
- 2. 何時在任何asp.net web應用程序中創建會話?
- 3. asp.net web應用程序中的Sql服務器會話模式
- 4. 如何從Asp.net web api應用程序中使用web api
- 5. 如何跟蹤Web應用程序中的會話?
- 6. 在asp.net中輸出proc會話爲不同的應用程序
- 7. 如何最大化/最小化asp.net web應用程序中的單獨部分
- 8. 如何在Web應用程序中使用託管Hibernate會話
- 9. 如何處理ASP.NET WebForms應用程序中的NHibernate會話?
- 10. 在大型asp.net應用程序中瞭解會話
- 11. 如何清除主Web應用程序和虛擬子應用程序中的會話? (ASP.NET)
- 12. 如何檢查Asp.Net WebForms會話大小
- 13. 如何使用web服務共享Web應用程序會話
- 14. 獨立的web應用程序會話
- 15. 會話的Web應用程序
- 16. Web應用程序的會話處理
- 17. 如何防止node.js應用程序中的會話溢出?
- 18. 如何在asp.net web應用程序中打開彈出窗口
- 19. 如何禁用/從ASP.NET 4.0 Web應用程序中刪除WebPageHttpModule?
- 20. 跨多個Web應用程序的Asp.Net共享會話?
- 21. ASP.NET會話大小限制
- 22. SharePoint Web應用程序的大小
- 23. 如何從ASP.NET Core Web應用程序中刪除Bower?
- 24. 非Web應用程序中的ASP.NET會員供應商?
- 25. Java Web應用程序會話變量
- 26. Web應用程序會話緩存
- 27. PHP會話在2 Web應用程序
- 28. 大會不加載的ASP.NET Web應用程序
- 29. 一般Web應用程序與社交應用程序中的會話超時
- 30. 會話不在ASP.NET Web應用程序超時
謝謝。那是我需要的。 – GrZeCh 2008-10-13 18:34:51
我需要進行以下更改: long totalSessionBytes = 0; 因爲m.Length返回一個長。但除此之外,這是一段精美的簡潔代碼!循環也可以是foreach。 ;-) – Oliver 2010-07-16 21:56:10