Hello!
How to find out size of session in ASP.NET from web application?
Thanks
-
Hello, if you mean Session Timeout, the default timeout is 20 minutes. Here it is a document that can help you to dectect it http://aspalliance.com/520.
If you want just make it bigger or check your server default, you can check the file web.config.
Victor
From VP -
Nope. Not session timeout but session size (in kB for example).
From GrZeCh -
I think you can find that information by adding Trace="true" to the page directive of a aspx page. Then when the page loads you can see a large number of details regarding the page request, including session information i think.
You can also enable tracing in your entire application by adding a line to your web.config file. Something like:
<trace enabled="true" requestLimit="10" pageOutput="true" traceMode="SortByTime" localOnly="true"/>From Rafe -
If you're trying to get the size of Session during runtime rather than in debug tracing, you might want to try something like this:
long totalSessionBytes; BinaryFormatter b = new BinaryFormatter(); MemoryStream m; foreach(var obj in Session) { m = new MemoryStream(); b.Serialize(m, obj); totalSessionBytes += m.Length; }(Inspired by http://www.codeproject.com/KB/session/exploresessionandcache.aspx)
GrZeCh : Thanks. That was what I needed.Oliver : I needed to make the following changes: long totalSessionBytes = 0; since m.Length returns a long. But aside from that it's a nice concise piece of code! The loop can be foreach, as well. ;-)ddc0660 : @Oliver Thanks for the feedback. I made the adjustments you suggested. Looks a little nicer now.From ddc0660
0 comments:
Post a Comment