PC Review


Reply
Thread Tools Rate Thread

how to dispose session variables automatically

 
 
Andy Fish
Guest
Posts: n/a
 
      26th Aug 2008
Hi,

I have some objects that implement IDisposable and they in turn need to
dispose of other objects (Only managed resources are being used).

My objects are held in the HTTP session. Is there a way to get these to be
Disposed properly when the session ends?

I guess I could use the session_end event but apparently it's not a good
idea to rely on this because it might not be called in all circumstances.
Also it's not possible to call dispose of another managed object from inside
a finalizer so I can't do it there.

is there an accepted best practice for this?

Andy


 
Reply With Quote
 
 
 
 
Anthony Jones
Guest
Posts: n/a
 
      26th Aug 2008
"Andy Fish" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Hi,
>
> I have some objects that implement IDisposable and they in turn need to
> dispose of other objects (Only managed resources are being used).
>
> My objects are held in the HTTP session. Is there a way to get these to be
> Disposed properly when the session ends?
>
> I guess I could use the session_end event but apparently it's not a good
> idea to rely on this because it might not be called in all circumstances.
> Also it's not possible to call dispose of another managed object from

inside
> a finalizer so I can't do it there.
>
> is there an accepted best practice for this?
>


Yeah don't store IDisposable objects in the session

Seriously though first consider whether you really need to be holding
disposable types. If you need to hold these types it will be because they
internally hold something disposable can those internal references be
disposed before the end of a request?

How unreliable do you think Session_End is? If occasionally it doesn't run
is it a disaster that sometimes things have to wait until a GC run to be
tidy up? After all its likely the session has been hanging around idle for
a while anyway.


--
Anthony Jones - MVP ASP/ASP.NET


 
Reply With Quote
 
Hans Kesting
Guest
Posts: n/a
 
      27th Aug 2008
After serious thinking Anthony Jones wrote :
>
> How unreliable do you think Session_End is?


Apparently if you use something other than InProc storage for the
session, the Session_End is never called.

Hans Kesting


 
Reply With Quote
 
Anthony Jones
Guest
Posts: n/a
 
      27th Aug 2008
"Hans Kesting" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> After serious thinking Anthony Jones wrote :
> >
> > How unreliable do you think Session_End is?

>
> Apparently if you use something other than InProc storage for the
> session, the Session_End is never called.
>


Umm.. ok. are you using Out of Proc storage?

Is it possible to store objects that truely need to be disposed (due to
using an unmanaged resource) in an out-of-proc store?

There are three nominal ways a session ends, it times out due to being idle,
a deliberate user action or if its inproc the process is a victim of
recycling.

If it ends on idle does it really matter that objects aren't immediately
disposed?
If the process terminates naturally then the objects are dropped and any
unmanaged resources would do what they naturally do when a process ends.

If a deliberate user action then code on the server is needed to bring that
about, you could place code there to handle the disposing. Thats pretty
messy.

Like I said you really want to avoid disposable objects being stored in the
session in the first place

--
Anthony Jones - MVP ASP/ASP.NET


 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Dispose variables to free memory Big George Microsoft ASP .NET 1 7th Sep 2010 08:33 AM
Session variables and static variables loss own contained value. neeraj Microsoft VB .NET 0 6th Sep 2006 01:33 PM
Accessing Session variables when using SQL Server for Session state Michael Microsoft ASP .NET 3 30th Dec 2005 07:56 PM
Uninitialized variables in C# and Dispose() =?Utf-8?B?SmFrb2IgQmVuZ3Rzc29u?= Microsoft Dot NET 4 30th Jan 2004 12:18 PM
Calling Dispose on form variables. Mahesh Microsoft Dot NET Framework Forms 0 5th Jan 2004 02:29 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 05:56 PM.