|
That approach is a memory leak, mind you. The static EndRequest event will hold references to all the life
style managers for all the requests. It is preferable to just register it in the HttpContext,
something like this: Public void RegisterForDisposale(IDisposable dis) { IList<IDisposable> disposables = HttpCotext.Current.Items[“Disposables.List.Items”]; disposables.Add(dis); } Public void OnEndRequest(object sender, EventArgs e) { Foreach(IDisposable dis in
HttpContext.Current.Items[“Disposables.List.Items”]) { Dis.Dispose(); } } From:
[EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Craig
Neuwirt Yup, that is what I ended up doing. I just created a
Module that register for EndRequest events and exposes a static EndRequest event that the lifestyle manager can
register interest in. It would have been nice if you could have been able to do HttpContext.ApplicationInstance.EndRequest +=
Application_EndRequest at any time. thanks, craig On 7/15/06, Ayende Rahien <[EMAIL PROTECTED]> wrote: Create a singleton object that
will dispose of objects in the HttpContext. On the first Resolve(),
register the object in the singleton, and have it register for EndReqeust, and
dipose all the registered objects in that requrest. From: [EMAIL PROTECTED]
[mailto:
[EMAIL PROTECTED]] On Behalf Of Craig
Neuwirt
Unfortunately, my exact idea does not work. I actually wanted to
attach to the EndRequest event within the PerWebReqyestLifeStyleManager on the
SPECIFIC instance related to the current Http context. This would have avoided modules or Global.asax needs. However, the pipeline takes
a snapshot of the event handlers before processing begins to any new registrations are ignored. On 7/15/06, Ayende Rahien <[EMAIL PROTECTED]> wrote:
That would work too. I have a bias toward
HttpModules because they are reusables, that is all. If you want to go this route,
just use Global.asax for this. The Application_EndRequest will be called per
request. From: [EMAIL PROTECTED]
[mailto:
[EMAIL PROTECTED]] On Behalf Of Craig
Neuwirt
What if I register for the EndRequest on the
HttpContext.Current.ApplicationInstance and then Release the component
there. Wouldn't that event apply only to that specific ApplicationInstance.
I could unregister the event too. On 7/14/06, Ayende Rahien <[EMAIL PROTECTED]
> wrote: I see, that being the case, I
would suggest using the PerRequest lifestyle, and then handling the RequestEnd
in a HttpModule. As well as adding a finalizer,
just in case. From: [EMAIL PROTECTED]
[mailto:
[EMAIL PROTECTED]] On Behalf Of Craig
Neuwirt
It is a legacy component that holds
connections to one or more databases as well as resources that must be
released. On 7/14/06, Ayende Rahien <
[EMAIL PROTECTED] > wrote: Why do you need to release the
component? From: [EMAIL PROTECTED]
[mailto:
[EMAIL PROTECTED]] On Behalf Of Craig
Neuwirt
Thats kinda what I want to do. My only
concern is how to determine when the logical thread is over so the
LifeStyleManager can properly release the component. On 7/14/06, Ayende Rahien <
[EMAIL PROTECTED] > wrote: Create a hybrid then, which
would delegate to the PerRequest or PerThread if the HttpContext.Current exists
or not. From: [EMAIL PROTECTED]
[mailto:
[EMAIL PROTECTED]] On Behalf Of Craig
Neuwirt Subject: Re: [Castle-users] LifeStyle for an HttpRequest I agree. I would like to create a LifestyleManager that functions as a
PerWebRequest in a Web environment and a PerLogicalRequest in a non-web environment.
In affect, a LogicalCallRequestLifeStyleManager. I wonder if it is correct to use
HttpContext if available, otherwise use the CallContext. The true details of the
latter still eludes me. On 7/14/06, hammett <
[EMAIL PROTECTED] > wrote: You may add, but I'd say that you do not create a new enum option for
|
------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________ CastleProject-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/castleproject-users
