如何从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